我正在尝试编写流音频客户端,我想使用ossaudiodev函数来帮助我在本地计算机上播放音频。不幸的是,每次尝试运行代码时都会遇到异常:

Unhandled exception in thread started by <function audioplayer at 0x88e96f4>
Traceback (most recent call last):
  File "client.py", line 56, in audioplayer
    audio = ossaudiodev.open("/dev/audio", 'w')
IOError: [Errno 16] Device or resource busy: '/dev/audio'

这是我的代码。很简单的方法,但是不确定如何释放/ dev / audio资源。
def audioplayer():

    audio = ossaudiodev.open("/dev/audio", 'w')
    audio.setfmt(ossaudiodev.AFMT_MU_LAW)
    audio.channels(2)
    audio.speed(8000)

    packet = 0

    sleep(.20) # give it a little bit of time to fill ze buffers

    while (packets[packet] != "\0"):
        audio.write(packets[packet])
        packet += 1

有什么窍门吗?

编辑:答案是显而易见的和愚蠢的。我在运行代码时正在玩pandora,因此扬声器在“忙”起来。谁能澄清为什么会这样?其他应用程序如何同时运行多个音频流,但我似乎不能呢?

最佳答案

即使在可用的系统上,OSS接口(interface)通常也只是ALSA的基础。考虑使用支持多个接口(interface)的库,例如pyao。

关于python - 使用ossaudiodev播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6118279/

10-13 03:18