Skip to main content

Python 绑定到 gorilla-audio 库

项目描述

Windows 构建

Mac OS X 构建

构建状态

构建状态

皮拉

pyrilla 是一个独立的静态链接绑定到 gorilla-audio库 - “尝试制作一个免费、直接、跨平台、高级软件混音器,支持静态和流声音的播放”。与原版一样,它旨在用于视频游戏开发。

pyrilla 的目标是提供一个 python 音频包,可以通过单个 pip install pyrilla命令安装而无需任何外部依赖。它是用 cython 构建的,其 API 的灵感来自于伟大但无人管理的 培根游戏引擎的一部分。

它可以在 OS X、Windows 和 Linux 上正常运行。官方支持的 Python 版本有 py27、py33、py34、py35。

PyPI 和支持的系统上的 pyrilla

PyPI 版本

Pyrilla 是 Gorilla Audio C 库的包装器,在安装期间静态链接。为方便开发人员,它作为 Windows、OS X 和 Linux 的二进制轮子在 PyPI 上分发。其广泛构建的管道针对不同的系统风格(32/64 位)和不同的 Python 版本。在受支持的系统上,可以使用 pip 轻松安装:

pip install pyrilla

提供的发行版的最新列表可 在 PyPI 上的 pyrilla 项目页面上找到。根据目标平台,底层 Gorilla Audio 库的编译设置略有不同:

目标平台

可用的 Python 版本

音频后端

视窗

py27、py33、py34、py35

XAudio2

Win32/Win64

Mac OS X

py27、py33、py34、py35

开放式

英特尔/x86_64

Linux

py27、py33、py34、py35

开放式

x86_64/i686(32位)

如果您确实需要其他平台或更多 Python 版本的支持,请在 GitHub 存储库上为该项目填写问题,以便我可以优先考虑我的工作。我不想花时间在不知道是否有人真的需要它们的情况下提供更多的发行版。

注意:PyPI 上用于 pyrilla 的 Linux 轮子是PEP 513所述的便携式 Linux 构建发行版(即manylinux1)。

PyPI 上可用的 pyrilla 的源代码分发 (sdist) 仍然有点损坏。通常它不应该在 Linux 上编译。这将在未来发生变化。如果你想在 Linux 上使用 pyrilla,你需要在你的平台上自己构建它。该过程非常简单,并在本自述文件的构建部分中进行了描述。

最后但同样重要的是,还有一些对 cygwin 的支持。不幸的是,对于这个环境,PyPI 上还没有二元轮。如果你想在 cygwin 下使用 pyrilla 则需要手动编译。

用法

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

from pyrilla import core

def finished(sound):
    print("sound %s finished playing" % sound)
    quit()


# note: sound file extension must be explicitely provided
sound = core.Sound("soundfile.ogg", "ogg")
# optional callback will be called when sound finishes to play
sound.play(finished)

while True:
    # update internal state of default audio manager and mixer
    # this mixes all currently played sounds, pushes buffers etc.
    core.update()

要播放循环音频,您需要使用可以从现有声音创建的Voice实例。

from pyrilla import core

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

while True:
    core.update()

有关自定义管理器/混音器、语音控制(音高、增益、平移)或停止/播放等更多功能,请参阅此 repo示例目录中的代码示例。

建造

构建 pyrilla 先决条件:

  • 赛通

  • 制作

  • 制作

如果您要构建此软件包,请记住 Gorilla Audio 与此存储库捆绑在一起作为 Git 子模块,来自我在 GitHub 上的非官方分支(在gorilla-audio目录下)。您需要使用--recursive Git 标志或手动初始化子模块来克隆此存储库:

git submodule update --init --recursive

使用 cmake 构建构建 gorilla-audio

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

请注意,为 Windows 构建可能有点棘手。如果您的个人环境损坏并且 Gorilla Audio 的编译步骤未找到 DirectX SDK 和/或 XAudio2 lib 文件的正确路径。如果您遇到与我相同的问题,那么您可能需要手动提供此路径以进行第一次 cmake 调用:

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

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置发行版

pyrilla-0.0.2-cp35-cp35m-win_amd64.whl (139.8 kB 查看哈希

已上传 cp35

pyrilla-0.0.2-cp35-cp35m-win32.whl (116.5 kB 查看哈希

已上传 cp35

pyrilla-0.0.2-cp35-cp35m-manylinux1_x86_64.whl (271.0 kB 查看哈希

已上传 cp35

pyrilla-0.0.2-cp35-cp35m-manylinux1_i686.whl (242.2 kB 查看哈希

已上传 cp35

pyrilla-0.0.2-cp35-cp35m-macosx_10_11_x86_64.whl (191.3 kB 查看哈希

已上传 cp35

pyrilla-0.0.2-cp35-cp35m-macosx_10_6_intel.whl (214.5 kB 查看哈希

已上传 cp35

pyrilla-0.0.2-cp34-cp34m-win_amd64.whl (134.1 kB 查看哈希

已上传 cp34

pyrilla-0.0.2-cp34-cp34m-win32.whl (120.4 kB 查看哈希

已上传 cp34

pyrilla-0.0.2-cp34-cp34m-manylinux1_x86_64.whl (272.8 kB 查看哈希

已上传 cp34

pyrilla-0.0.2-cp34-cp34m-manylinux1_i686.whl (244.1 kB 查看哈希

已上传 cp34

pyrilla-0.0.2-cp34-cp34m-macosx_10_11_x86_64.whl (191.2 kB 查看哈希

已上传 cp34

pyrilla-0.0.2-cp34-cp34m-macosx_10_6_intel.whl (214.4 kB 查看哈希

已上传 cp34

pyrilla-0.0.2-cp33-none-win32.whl (120.4 kB 查看哈希)

已上传 cp33

pyrilla-0.0.2-cp33-cp33m-win_amd64.whl (134.0 kB 查看哈希

已上传 cp33

pyrilla-0.0.2-cp33-cp33m-manylinux1_x86_64.whl (267.5 kB 查看哈希

已上传 cp33

pyrilla-0.0.2-cp33-cp33m-manylinux1_i686.whl (238.9 kB 查看哈希)

已上传 cp33

pyrilla-0.0.2-cp33-cp33m-macosx_10_11_x86_64.whl (191.1 kB 查看哈希

已上传 cp33

pyrilla-0.0.2-cp33-cp33m-macosx_10_6_x86_64.whl (214.2 kB 查看哈希)

已上传 cp33

pyrilla-0.0.2-cp27-none-macosx_10_11_intel.whl (209.8 kB 查看哈希)

已上传 cp27

pyrilla-0.0.2-cp27-cp27mu-manylinux1_x86_64.whl (263.7 kB 查看哈希

已上传 cp27

pyrilla-0.0.2-cp27-cp27mu-manylinux1_i686.whl (236.6 kB 查看哈希

已上传 cp27

pyrilla-0.0.2-cp27-cp27m-win_amd64.whl (134.4 kB 查看哈希

已上传 cp27

pyrilla-0.0.2-cp27-cp27m-win32.whl (120.3 kB 查看哈希

已上传 cp27

pyrilla-0.0.2-cp27-cp27m-manylinux1_x86_64.whl (263.7 kB 查看哈希

已上传 cp27

pyrilla-0.0.2-cp27-cp27m-manylinux1_i686.whl (236.5 kB 查看哈希

已上传 cp27

pyrilla-0.0.2-cp27-cp27m-macosx_10_11_x86_64.whl (190.9 kB 查看哈希

已上传 cp27