簡體   English   中英

Raspberry Pi和Mplayer聲音循環錯誤

[英]Raspberry Pi and Mplayer sound loop error

我正在嘗試使用mplayer循環播放1秒的聲音。 當我運行代碼時,它會使樹莓派os崩潰。 我注意到有些時候mplayer進程的多個實例掛在任務管理器中,所以我添加了代碼以獲取進程id pidofkill它。
但是該過程不斷出現多次,並且樹莓派在某些循環后不斷崩潰。

另外,有時聲音似乎重疊了(可能是由於該過程的多個實例)

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM