将 RtAudio 与 Core-Audio 一起使用,probeDeviceOpen 函数失败

Posted

技术标签:

【中文标题】将 RtAudio 与 Core-Audio 一起使用,probeDeviceOpen 函数失败【英文标题】:Using RtAudio with Core-Audio, the probeDeviceOpen function fails 【发布时间】:2011-07-11 21:40:23 【问题描述】:

我正在尝试编写一个播放实时处理音频的 C++ 程序。我决定使用 RtAudio 但无法让测试程序播放音频。

我使用的是 Mac OS X,所以我使用 ./configure --with-coremake 编译。编译完test目录下的文件后,我运行./audioprobe返回这个列表。

Compiled APIs:
  OS-X Core Audio

Current API: OS-X Core Audio

Found 3 device(s) ...

Device Name = Apple Inc.: Built-in Microphone
Probe Status = Successful
Output Channels = 0
Input Channels = 2
Duplex Channels = 0
This is NOT the default output device.
This is NOT the default input device.
Natively supported data formats:
  32-bit float
Supported sample rates = 44100 48000 88200 96000 

Device Name = Apple Inc.: Built-in Input
Probe Status = Successful
Output Channels = 0
Input Channels = 2
Duplex Channels = 0
This is NOT the default output device.
This is the default input device.
Natively supported data formats:
  32-bit float
Supported sample rates = 44100 48000 88200 96000 

Device Name = Apple Inc.: Built-in Output
Probe Status = Successful
Output Channels = 2
Input Channels = 0
Duplex Channels = 0
This is the default output device.
This is NOT the default input device.
Natively supported data formats:
  32-bit float
Supported sample rates = 44100 48000 88200 96000 

由于内置输出设备是索引2,所以我跑了./playsaw 2 44100 2,但是出现了错误:

RtApiCore::probeDeviceOpen: system error (kAudioHardwareUnknownPropertyError)
    getting stream format for device (2).

如何解决这个问题?

【问题讨论】:

【参考方案1】:

你在 Lion (10.7) 上吗?我在旧系统(10.6.x)上看到了同样的问题,RtAudio 对我来说很好。

也许你可以降级到 RtAudio 4.0.6,这在 Lion 上对我有用,但仍然存在一个隐藏在 4.0.8 中修复的设备名称的错误。

【讨论】:

我以为这个问题永远不会得到回答,但这似乎解决了问题。非常感谢。 似乎 4.0.10 解决了这个问题。

以上是关于将 RtAudio 与 Core-Audio 一起使用,probeDeviceOpen 函数失败的主要内容,如果未能解决你的问题,请参考以下文章

尝试编译 RtAudio 时出现未定义的符号

使用 MoMu STK 进行音频合成

将库文件夹添加到 Visual Studio

为啥将@Transactional 与@Service 一起使用而不是与@Controller 一起使用

为啥将@Transactional 与@Service 一起使用而不是与@Controller 一起使用

将 UIRefreshControl 与 QuickDialog 一起使用