在任意频道播放声音

时间:2013-01-20 14:34:11

标签: macos cocoa core-audio avaudioplayer nssound

(适用OSX /可可)

我需要能够从声音文件集合中获取任何声音(或声音)并通过任意声音输出通道播放它(或者它们),最好是通过每个声音级别控制和或多或少自动渠道混合。 (意思是多个声音可以在同一个频道中同时播放)

声音必须能够干净利落。

除默认的内置音频外,可用的输出通道还是,通过USB音频设备添加。出于此问题的目的,“通道”等同于USB音频适配器。

换句话说,我需要找/写类似的东西:

 -(BOOL) [someObject playContentsOfURL: (NSURL) soundURL  
                            viaChannel: (id) channelspec
                         atVolumeLevel: (double) volume
                                  loop: (BOOL) loop
         ];

AVAudioPlayer 非常接近,但似乎假设使用内置立体声音频。我无法弄清楚如何将输出路由到特定的输出设备。 它很好,但是

NSSound playbackDeviceIdentifier 执行输出设备路由部分,但NSSound的循环可怕。如果NSSounds循环不那么糟糕,那将是一个胜利者。

因此,如果你有使NSSound循环干净的答案,那将非常令人满意地回答这个问题。

如果您可以指定如何向AVAudioPlayer提供输出路由,那就同样有效。

OR ,如果您可以指向或提供CoreAudio或其他可以实现此目的的代码,那么它也可以正常工作。

0 个答案:

没有答案