(OSX/可可)
我需要能够从声音文件集合中获取任何声音(或声音)并通过任意声音输出通道播放它(或它们),最好使用每个声音级别控制和或多或少的自动通道混合。(意味着多个声音可以在同一个通道中同时播放)
声音必须能够干净地循环播放。
除了默认的内置音频,可用的输出通道将通过 USB 音频设备添加。就本问题而言,“通道”相当于 USB 音频适配器。
换句话说,我需要找到/写一些类似的东西:
-(BOOL) [someObject playContentsOfURL: (NSURL) soundURL
viaChannel: (id) channelspec
atVolumeLevel: (double) volume
loop: (BOOL) loop
];
AVAudioPlayer非常接近,但它似乎假设使用内置立体声音频。我无法弄清楚如何将输出路由到特定的输出设备。然而,它的循环很棒。
NSSound的playbackDeviceIdentifier做了输出设备路由部分,但是NSSound 的循环很糟糕。如果 NSSounds 循环不是那么糟糕,那将是赢家。
因此,如果您有一个使 NSSound loop cleanly的答案,那将非常令人满意地回答这个问题。
如果您可以指定如何为 AVAudioPlayer 提供输出路由,那将同样漂亮。
或者,如果您可以指向或提供 CoreAudio 或其他可以完成此操作的代码,那也可以。