gpt4 book ai didi

python - Python 'multitasking'需要

转载 作者:行者123 更新时间:2023-12-02 23:55:10 26 4
gpt4 key购买 nike

我正在编写一个音频程序,该程序读取arduino发送的串行信息,如果串行信息“确定”,则播放一些歌曲,如果“不正确”,则停止播放。
问题是我正在使用名为“pyAudio”的python库,该库以字节流的形式再现.wav声音,因此每次出现“though”循环写入字节流时,声音就会播放。
由于使用了while循环,因此我无法在执行代码的同时做更多的事情。但是我需要每次阅读串行信息,以了解是否必须播放声音。有什么办法可以使我的循环不会停止运行吗?

谢谢!

最佳答案

伪代码草稿:

def play_audio( buffer,play_controller ):
# buffer is the audio buffer to play
# play_controller.is_set lets you pause the playback
while not_finished:
if not play_controller.is_set():
"""
The necessary code for playing a audio buffer/song
"""
else: time.sleep(0.1)
#end

import threading
pause_handler = threading.Event()
player = threading.Thread(
target = play_audio,
args = ( buffer,pause_handler )
)
player.start()
pause_handler.set() # this could pause playback
pause_handler.clear() # this could restart playback
如果我理解正确的话。如您所见,这是很直接的。
如果您正在寻找更可靠的解决方案,则应查看 GStreamer here

关于python - Python 'multitasking'需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17181259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com