【发布时间】:2014-03-10 18:37:17
【问题描述】:
我正在尝试使用mplayer 循环播放 1 秒的声音。当我运行代码时,它会使覆盆子操作系统崩溃。我注意到有时mplayer 进程的多个实例挂在任务管理器中,因此我添加了代码来获取进程ID pidof 和kill。
但是该过程不断出现多次,并且覆盆子在一些循环后不断崩溃。
此外,有时声音似乎重叠(可能是因为进程的多个实例)
import os
import time
import serial
# arduino stuff
ser = serial.Serial('/dev/ttyACM0', 9600)
while True:
os.system('mplayer -really-quiet /home/pi/Desktop/sound.mp3 &')
time.sleep(1.5)
ser.write('1') # send a signal to arduino
a = os.popen('pidof mplayer').read()
if(a != ''):
os.system('sudo kill ' + str(a))
注意:我试过用其他播放器,比如mpg123,但问题完全一样。
【问题讨论】:
-
您是否在 Arduino 崩溃前得到 IO 响应?
-
我尝试删除 arduino/串行通信代码,覆盆子不再崩溃,声音效果很好。但是如果我做任何其他事情(甚至拖动窗口),树莓派会变得非常慢,并且声音再次开始失败。
标签: python linux audio raspberry-pi mplayer