我在linux服务器中使用mpg123,并试图通过一个网页(apache)控制它,使用链接发送不同的控件。
mpg123有标志,所以您可以向它发送字符。S键=开始/停止,f键=下一个轨道.诸若此类。
我想我可以用fifo向mpg123发送那些密钥,将mpg123 stdin更改为fifo,但在这种情况下我不知道如何使用fifo (如何使mpg123“侦听”另一个stdin)。我所做的是:
mkfifo myfifo
myfifo | mpg123 -C -@ musiclist.txt
And then I've created keys.txt adding some keys to
好了,我的google-fu真的很糟糕,我找不到答案,希望你们能帮助我^_^
好的,我认为一个简单的脚本似乎没有正确地与它的子进程通信,我逐行运行了这个脚本。我也在使用mpg123播放器,这是一个Linux系统(好吧,树莓派)
from subprocess import Popen, PIPE, STDOUT
p = Popen(["mpg123", "-C", "test.mp3"], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
#wait a few seconds to ente
我的问题是,每个按钮下的音频文件都相当长,如果我按错了按钮,我将不得不等待播放结束。如何让每个按钮按下1)停止可能播放的音频文件,然后2)播放它自己的文件?我使用mpg123播放音频文件,文件名是占位符。
代码:
#!/usr/bin/env python
import os
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN)
GPIO.setup(19, GPIO.IN)
GPIO.setup(20, GPIO.IN)
GPIO.setup(21, GP
我需要添加一些mp3文件播放功能,我的基于Linux的嵌入式应用程序。到目前为止,我使用的是系统调用(mpg123 -qm list of mp3 files)。但现在我没有播放列表的所有元素,但只有当我准备好前一个元素时才能获得下一个元素。对于mpg123,这意味着我在音轨之间有一些愚蠢的噪音,因为我总是必须重新启动mpg123二进制文件。
我四处寻找一些库,发现了libmad、lame、sdl和co。但是一开始处理它们似乎有点过于复杂。我发现fmod ()库很容易使用。但它只能使用二进制格式,这不适合我的基于ARM的目标(更不用说许可问题了)。有没有人知道有没有类似的开源库能够播放类似于f
几周前,我在这里问了一个与此相关的问题:
多亏了那里的帮助,我才能做我当时需要做的事情。(没有调用q,但是终止了子进程来停止它)现在.##标题为##,尽管我看起来有点混乱。
from subprocess import Popen, PIPE, STDOUT
p = Popen(["mpg123", "-C", "test.mp3"], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
#wait a few seconds to enter this, "q" without
我将用于屏幕上的语音,所有这些都可以在本地开发站点上正常工作,但在heroku的服务器上却抛出了500个。tts gem依赖于。
heroku日志在运行时发送以下错误:
2014-06-23T09:37:47.024478+00:00 app[web.1]: mpg123 executable NOT found. This function only work with POSIX systems.
2014-06-23T09:37:47.024485+00:00 app[web.1]: Install mpg123 with `brew install mpg123` or `ap
我正在编写一个node.js应用程序,它调用mpg123在指定的时间播放音频。当发生这种情况时,我会保存日志,但只有在发生错误时(例如,文件未找到错误)。
当mpg123失败时,我的应用程序会捕获错误,但也会捕获标准的High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3 ...消息以及实际错误。
除了抓取输出的最后一行(S)并且只记录这一点之外,我有没有办法强迫mpg123压制它的欢迎信息并只显示错误呢?手册页没有显示我能看到的任何东西,但是我对其他我还没有考虑过的方法很好奇。
我正在尝试使用我的树莓派播放声音时,按钮被按下,另外输出时,按下按钮的正确顺序。
我已经弄清楚了声音很好,并让它工作,但不知道如何编程的密码锁。如果能帮助我走上正确的道路,我将不胜感激。(输出将设置为26)
到目前为止的代码:
import os
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)
GPIO.setup(27, GPIO.IN)
GPIO.setup(22, GPIO.IN)
GPIO.setup(10, GPIO.IN)
while T
我有一个通过Net::Server模块运行TCP侦听器的perl脚本。当遥控器连接到perl服务器时,遥控器会发送mp3音乐文件的文件名进行播放。当我使用fork()然后调用system('mpg123 $filename')时,客户端挂起了。如何对mpg123进程进行后台操作,以便子进程可以关闭连接?
my $pid = fork();
if (defined $pid && $pid == 0)
{
# child process -- never gets to print statement until $c