python绑定到gorilla音频库

pyrilla的Python项目详细描述


Windows buildMac OS X build
Build statusBuild Status

吡咯

pyrilla是一个自包含的静态链接绑定 gorilla-audio库- “试图建立一个自由、直截了当、跨平台、高水平的 支持静态和流媒体播放的软件音频混音器 听起来”。就像原版一样,它是为视频游戏开发而设计的。

pyrilla的目标是提供一个python音频包,它可以 安装时没有任何外部依赖项 pip install pyrilla命令。它是用cython构建的,它的api是 灵感来源于部分伟大但未经修饰的作品 bacon游戏引擎。

它在OSX、Windows和Linux上运行时没有任何问题。正式 支持的python版本有py27、py33、py34、py35。

pypi上的pyrilla和支持的系统

PyPI version

pyrilla是静态链接的gorilla audio c库的包装器。 在安装过程中。为了方便开发人员,它在 pypi作为windows、os x和linux的二进制轮子。它庞大的建筑 管道针对不同的系统风格(32/64位)和不同的 python版本。在支持的系统上,它可以很容易地安装 管道:

pip install pyrilla

提供的发行版的最新列表可在Pyrilla的 project page on PyPI。 根据目标平台的不同,底层的Gorilla音频库是 使用稍微不同的设置编译:

Target platformAvailable Python versionsAudio backendArch
Windowspy27, py33, py34, py35XAudio2Win32/Win64
Mac OS Xpy27, py33, py34, py35OpenALintel/x86_64
Linuxpy27, py33, py34, py35OpenALx86_64/i686 (32bit)

如果您确实需要对其他平台或更多python版本的支持 然后在这个项目的github存储库中填写这个问题,这样我就可以 优先考虑我的工作。我不想把时间花在提供更多 分发不知道是否有人真正需要它们。

注意:pypi上pyrilla的linux轮子是可移植的linux构建 分布(即manylinux1)如PEP 513所述。

pypi上提供的pyrilla的源分布(sdist)仍然有一点 坏了。一般来说,它不应该在linux上编译。这就要开始了 改变未来。如果你想在linux上使用pyrilla,你需要 在你的平台上自己建造。过程是普里蒂 在本自述文件的building部分中简单介绍。

最后但并非最不重要的是,也有一些支持cygwin。不幸的是 对于这个环境,pypi上还没有二进制轮。如果你愿意 要在cygwin下使用pyrilla,则需要手动编译它。

用法

播放单个声音的最简单方法是使用Soundclass:

frompyrillaimportcoredeffinished(sound):print("sound %s finished playing"%sound)quit()# note: sound file extension must be explicitely providedsound=core.Sound("soundfile.ogg","ogg")# optional callback will be called when sound finishes to playsound.play(finished)whileTrue:# update internal state of default audio manager and mixer# this mixes all currently played sounds, pushes buffers etc.core.update()

要播放循环音频,您需要使用Voice实例 由现有声音产生。

frompyrillaimportcoresound=core.Sound("soundfile.ogg","ogg")voice=core.Voice(sound,loop=True)voice.play()whileTrue:core.update()

更多功能,如自定义管理器/混音器、语音控制(音高, 获取、平移)或停止/播放请参阅examples目录中的代码示例 这次回购。

建筑

构建pyrilla先决条件:

  • 赛顿
  • 制造

如果你要建立这个包,然后记住大猩猩的音频 作为git子模块与这个存储库捆绑在一起 在github上(在gorilla-audio目录下)。你需要克隆一个 具有--recursivegit标志或init子模块的存储库 手动:

git submodule update --init --recursive

使用cmake生成gorilla音频

cmake gorilla-audio/build
cmake --build . --config Release
python setup.py build

对于Windows(也在Cygwin上):

cmake -DENABLE_OPENAL:STRING=0 -DENABLE_XAUDIO2:STRING=1 -DENABLE_DIRECTSOUND:STRING=0 .
cmake --config Release --build .

然后构建并安装python扩展:

python setup.py build
python setup.py install

请注意,为窗户而建的建筑可能要复杂一些。如果你的私人 环境已损坏,Gorilla Audio的编译步骤没有 找到directx sdk和/或xaudio2 lib文件的正确路径。如果你 有和我一样的问题,那么你可能需要提供这个路径 手动拨打第一个CMAKE电话:

-DDIRECTX_XAUDIO2_LIBRARY=path/to/the/DirectXSdk/Lib/x86/xapobase.lib

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将一个节点拖到另一个不运行JavaFX的节点中   java如何在spring boot中创建完全自定义的查询   java Arraylist和ArrayListBlockingQueue之间的区别是什么?   java Weblogic会中断长时间运行的线程吗   java如何调用displayAd()方法?   使用数组在两个组之间进行java IPL匹配   java如何在Eclipse中的org下创建测试套件。朱尼特   java获取屏幕上任意点的鼠标坐标   正则表达式需要java正则表达式方面的帮助   如何使用Java获取Ram大小和硬盘大小?   java如何将所需长度设置为数组中的整数?   安卓应用程序启动前的java程序已终止   swing设置要在Java代码中打印的页边距   迭代期间java故障安全迭代器的删除   java如何在main中调用方法,以便它们在同一行上输出?   编译Java:尝试播放mp3文件时出错   java如何使用Spring数据Rest在POST调用中保存嵌入对象   java JAXWS如何在端点外部注入SecurityContext