怎么让python播放音频_用Python播放音频

这篇博客探讨了如何在Python中播放音频文件,特别是在Mac上。文章提到了多个解决方案,包括使用pygame、Simpleaudio、PyMedia、Pyglet、PyAudio、playsound、sounddevice等库。每个方案都给出了相应的代码示例,适合不同平台和需求。
摘要由CSDN通过智能技术生成

用Python播放音频

如何从Python脚本播放音频(它可能就像1秒声音)?

如果它与平台无关,那将是最好的,但首先它需要在Mac上运行。

我知道我可以在Python中执行afplay file.mp3命令,但是可以在原始Python中执行吗? 如果它不依赖外部库我也会更好。

Josh Hunt asked 2019-08-05T23:42:00Z

22个解决方案

38 votes

你最好的选择可能是使用pygame / SDL。 它是一个外部库,但它跨平台提供了很好的支持。

pygame.mixer.init()

pygame.mixer.music.load("file.mp3")

pygame.mixer.music.play()

您可以在pygame.mixer.music文档中找到有关音频混音器支持的更多特定文档

TML answered 2019-08-05T23:42:49Z

19 votes

你可以在这里找到有关Python音频的信息:[http://wiki.python.org/moin/Audio/]

看起来它不能播放没有外部库的.mp3文件。 您可以将.mp3文件转换为.wav或其他格式,或使用PyMedia等库。

Jeremy Ruten answered 2019-08-05T23:42:18Z

15 votes

看看Simpleaudio,这是一个相对较新且轻量级的库,用于此目的:

> pip install simpleaudio

然后:

import simpleaudio as sa

wave_obj = sa.WaveObject.from_wave_file("path/to/file.wav")

play_obj = wave_obj.play()

play_obj.wait_done()

确保使用未压缩的16位PCM文件。

Erwin Mayer answered 2019-08-05T23:43:22Z

13 votes

在pydub中,我们最近选择使用ffmpeg工具套件中的ffplay(通过子进程),这些工具在内部使用SDL。

它适用于我们的目的 - 主要是让它更容易在交互模式下测试pydub代码的结果 - 但它有它的缺点,比如导致新程序出现在mac上的dock中。

我已经将上面的实现链接起来,但是简化版本如下:

import subprocess

def play(audio_file_path):

subprocess.call(["ffplay", "-nodisp", "-autoexit", audio_file_path])

-nodisp标志阻止ffplay显示新窗口,-autoexit标志导致ffplay退出并在音频文件播放完毕后返回状态代码。

编辑:pydub现在使用pyaudio进行播放,然后回到ffplay以避免我提到的缺点。 上面的链接也显示了实现。

Jiaaro answered 2019-08-05T23:44:16Z

11 votes

尝试playound,这是一个纯Python,跨平台,单一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值