播放音频文件的方法
1. 使用Python的winsound模块
方法 | 描述 | 代码示例 |
本地音频文件 | 使用winsound.PlaySound() 函数播放本地WAV格式的音频文件 | import winsound; winsound.PlaySound('myfile.wav', winsound.SND_FILENAME) |
远程服务器静态音频文件 | 将远程音频文件读取到内存,再使用winsound.PlaySound() 函数播放 | import winsound, requests; sound_bytes = requests.get(url_sound).content; winsound.PlaySound(sound_bytes, winsound.SND_MEMORY) |
2. 使用QT框架
方法 | 描述 | 代码示例 |
QSound | 最简单的播放方式,适合在主线程里调用 | #include |
QSoundEffect | 适合提示音,可以设置循环次数和音量 | #include |
QMediaPlayer | 适合做音乐播放器,支持多种格式 | #include |
3. 其他Python库
方法 | 描述 | 代码示例 |
playsound | 简单的跨平台模块,支持WAV和MP3文件 | from playsound import playsound; playsound('myfile.wav') |
simpleaudio | 用于播放WAV文件和NumPy数组,提供检查文件是否仍在播放的选项 | import simpleaudio as sa; filename = 'myfile.wav'; wave_obj = sa.WaveObject.from_wave_file(filename); play_obj = wave_obj.play(); play_obj.wait_done() |
pythonsounddevice | 跨平台音频回放模块,与PortAudio库绑定 | import sounddevice as sd, soundfile as sf; data, fs = sf.read(filename, dtype='float32'); sd.play(data, fs); status = sd.wait() |
pydub | 允许播放多种音频格式,依赖ffmpeg或libav | from pydub import AudioSegment; from pydub.playback import play; sound = AudioSegment.from_wav('myfile.wav'); play(sound) |
4. 使用HTML5的audio标签
方法 | 描述 | 代码示例 |
audio标签 | 实现音频流或语音流播放,通过Fetch API获取音频数据流 | ; loadAndPlayAudio() { const base64AudioData = 'data:audio/mp3;base64,...'; fetch(base64AudioData).then(response => response.blob()).then(blob => { const audioUrl = URL.createObjectURL(blob); this.$refs.audioPlayer.src = audioUrl; this.$refs.audioPlayer.play(); }); } |
5. 使用pyaudio和wave模块(针对MP3)
方法 | 描述 | 代码示例 |
pyaudio和wave | 通过pyaudio和wave模块播放MP3格式的音频文件,需要先转换为WAV格式 | import pyaudio, wave; wf = wave.open('pubdat.musicpath', 'rb'); p = pyaudio.PyAudio(); stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(), rate=wf.getframerate(), output=True); data = wf.readframes(loadchunk); while len(data) > 0: stream.write(data); stream.stop_stream(); stream.close(); p.terminate() |
是一些常见的方法和工具来播放音频文件,包括本地和远程服务器上的音频文件,不同的工具和方法适用于不同的需求和环境,可以根据具体需求选择合适的方案。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1231199.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复