下面的脚本必须在收到UDP数据包后播放音频文件(.wav),但它不起作用。为什么?为什么?
import pygame
import socket
# set UDP port
UDP_PORT = 5005
# audio (.wav) file path
AUDIO_FILE_PATH = "/home/rpi/mixkit-emergency-alert-alarm-1007.wav"
def play_audio(file_path):
pygame.mixer.init()
pygame.mixer.music.load(file_path)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
continue
if __name__ == "__main__":
# start UDP socket UDP
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.bind(("", UDP_PORT))
print("Listening UDP port", UDP_PORT)
while True:
data, addr = udp_socket.recvfrom(1024)
message = data.decode("utf-8")
print("Message received:", message)
# if msg received, play audio file
if message == "play_audio":
play_audio(AUDIO_FILE_PATH)
字符串
我用以下命令测试了它:
第一个月
已收到消息,但未播放音频。
然后,我只尝试了脚本来测试音频,没有UDP服务器,它的音频文件被正确播放。下面的脚本只测试音频:
import pygame
# Imposta il percorso del file audio (deve essere un file WAV)
AUDIO_FILE_PATH = "/home/rpi/mixkit-emergency-alert-alarm-1007.wav"
def play_audio(file_path):
pygame.mixer.init()
pygame.mixer.music.load(file_path)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
continue
if __name__ == "__main__":
play_audio(AUDIO_FILE_PATH)
型
有没有人可以帮助我理解为什么UDP服务器与音频播放一起的程序不起作用?
1条答案
按热度按时间rkkpypqq1#
我发现了我的错误。
使用
echo "play_audio" | nc -u -w1 192.168.8.120 5005
不起作用。使用以下简单的python脚本发送UDP消息确实有效。
字符串