0

我一直在尝试将音频提示添加到我正在使用 Py-Audiere 开发的程序中。但是,只有当我在 IDlE 中使用 run 命令(或手动将其放入解释器)时才会播放声音,并且只有在以特定方式完成调用时才会播放。这是代码片段:

import audiere

filename = 'Bell'
d = audiere.open_device()
filename += '.mp3'
bell = d.open_file(filename)
bell.repeating = True

def play_tone():
    bell.play()

play_tone()

如果我在 IDLE 之外运行它,什么也不会发生。如果我在 IDLE 中运行它,但将其全部移动到函数中并传递文件名,则不会发生任何事情。

我对这个库发生了什么感到非常困惑,在这一点上,我什至不确定我是否应该使用这个库。有谁知道发生了什么或有替代方案(我考虑过 GStreamer,但我无法弄清楚他们的文档)?

4

1 回答 1

1

我用 audiere 做了一些实验(以前从未听说过这个库),它看起来像是在后台的一个新线程中播放声音。

在您的代码片段中,您告诉audiere 开始演奏您的铃铛,但您从来没有给它足够的时间来完全演奏它。当您在 Idle 或 Python 解释器中运行它时,这并不重要,因为 Python 进程仍在运行,因此声音只是在后台播放。

他们的网站有一个小片段,展示了如何实现这一点:

import time
def play_tone():
    bell.play()
    while bell.playing:
        time.sleep(0.1)

至于 gstreamer,如果您以前从未使用过它,文档可能会有点复杂。我发现学习如何使用它的最好方法就是尝试它。一些好的开始是本教程,它解释了 gstreamer 如何工作的基础知识。此代码片段显示了如何使用它播放单个声音文件。如果您想阅读它,这个irc 对话也很有帮助。

于 2011-02-21T20:53:31.963 回答