播放.wav文件x秒

用户名

我尝试在随机播放数毫秒后播放.wav文件,然后再继续执行我的代码中的下一个文件。最好的方法是什么?

我目前有以下代码:

#!/usr/bin/env python

from random import randint import time import pyaudio
import wave

while True: # random number to indicate wav file name x = randint(1,45) print ("Note: %d" % x)

# play wav file chunk = 1024 f = wave.open(r"%d.wav" % x,"rb") p = pyaudio.PyAudio() stream = p.open(format = p.get_format_from_width(f.getsampwidth()), channels = f.getnchannels(), rate = f.getframerate(), output = True) data = f.readframes(chunk) while data != '': stream.write(data) data = f.readframes(chunk) stream.stop_stream() stream.close() p.terminate()
Leth0_

尝试一下,不知道它是否是干净的代码,但是可以正常工作。

#!/usr/bin/env python


from random import randint
import time
import pyaudio
import threading
import multiprocessing
import wave  


# play wav file
chunk = 1024

def playAudio(x):
    f = wave.open(r"%d.wav" % x,"rb")
    p = pyaudio.PyAudio() 
    stream = p.open(format = p.get_format_from_width(f.getsampwidth()),  
                    channels = f.getnchannels(),  
                    rate = f.getframerate(),  
                    output = True)  
    data = f.readframes(chunk)  

    while data != '':  
        stream.write(data)  
        data = f.readframes(chunk)  

    stream.stop_stream()  
    stream.close()
    p.terminate()

if __name__ == '__main__':
    while True:
        x = randint(1,45)  
        p = multiprocessing.Process(target=playAudio, args=(x,))
        p.start()
        time.sleep(5)
        p.terminate()
        p.join()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章