天天看点

如何跨平台python播放pcm音频

本文首先要感谢以下两篇博客的指导:

  1. python-pcm音频播放器
  2. 最简单的视音频播放示例9:SDL2播放PCM

本文依赖的代码请参考文章1,本文主要介绍在Windows,MacOS环境下如何搭建python依赖环境。

首先,需要使用pip命令安装pysdl2扩展包:pip install pysdl2,如果不使用pip命令,则可以参考pysdl2官网的安装说明

然后我们需要给自己的操作系统安装SDL2的运行库,文章1是基于ubuntu系统apt命令安装了sdl2的运行库,如果使用windows系统,则需要通过SDL2官网下载dll动态链接库,下载后并在环境变量中添加PYSDL2_DLL_PATH,如下图所示:

如何跨平台python播放pcm音频

本人使用windows10 64bit家庭版亲测,文章1中的源码可以正常执行,但是一直没有声音,然后我根据文章2,将文章1中源码第37行修改为:audio.SDL_OpenAudio(reqspec, None)后可以正常播放,如果播放有杂音或者声音不正常,可以参考文章2修改文章1中第35行代码,将采样率,声道数等设置为符合自己pcm文件的参数。

如果使用MacOS系统,则依然通过SDL2官网下载MAC下的dmg文件,打开dmg文件后,将sdl2的运行库拷贝到/Library/Frameworks/目录下即可正常运行文章1的源码。本人使用macOS High Sierra系统亲测可用。

遗留问题:我使用windows和macos系统都无法正常播放文章1中的piano.pcm文件,由于不了解文章1中pcm文件的采样率等情况,所以亲测的是自己的pcm文件。