在 OSX 上更改 AVAudioPlayer 的输出设备
Posted
技术标签:
【中文标题】在 OSX 上更改 AVAudioPlayer 的输出设备【英文标题】:Change the output device for AVAudioPlayer on OSX 【发布时间】:2014-10-21 13:21:48 【问题描述】:我需要将音频从 AVAudioPlayer 播放到特定的音频设备,例如 USB 耳机。默认情况下,音频将按照系统默认设备设置播放。使用 QTKit,我能够使用 SetMovieAudioContext() 来完成这样的任务,但在 AVFoundation 中看不到等效项。如何在 OSX 上更改此设置?
【问题讨论】:
【参考方案1】:改用NSSound:
获取具有CoreAudio
功能的音频设备列表。然后获取设备的唯一标识符:
//...
address.mSelector = kAudioDevicePropertyDeviceUID;
CFStringRef uid = NULL;
UInt32 size = sizeof(uid);
AudioObjectGetPropertyData(deviceId, &address, 0, NULL, &size, &uid);
//...
初始化声音项,设置playbackDeviceIdentifier
属性值。
【讨论】:
谢谢 - 这是我们采用的方法。【参考方案2】:向 Apple 开了一个 DTS 案例,他们说这是不可能的(因为我需要支持 10.8)。如果只需要支持 10.9 及以上版本,AVPlayerAudioDeviceSupport 应该可以工作。
【讨论】:
以上是关于在 OSX 上更改 AVAudioPlayer 的输出设备的主要内容,如果未能解决你的问题,请参考以下文章