![](/img/trans.png)
[英]Using Python 3 on a Raspberry Pi, how to call MPlayer and passing a URL
[英]Raspberry Pi and Mplayer sound loop error
我正在嘗試使用mplayer
循環播放1秒的聲音。 當我運行代碼時,它會使樹莓派os崩潰。 我注意到有些時候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
,但問題完全相同。
如果您的聲音文件的時間長於1.5秒的睡眠時間,則很自然會建立無數個進程,因為您正在后台運行mplayer,從結尾的“&”可以看出。
終止進程有點麻煩。 並且它引入了一個問題,即您使用os.popen()
打開了一個文件狀的對象,而該對象從未關閉過。
相反,您應該將聲音文件修整到想要播放的長度,並在命令行末尾刪除“&”。 作為修剪聲音文件的替代方法,您可以找到mplayer選項來限制播放音樂的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.