【问题标题】:Change the output device for AVAudioPlayer on OSX在 OSX 上更改 AVAudioPlayer 的输出设备
【发布时间】:2014-10-21 13:21:48
【问题描述】:

我需要将音频从 AVAudioPlayer 播放到特定的音频设备,例如 USB 耳机。默认情况下,音频将按照系统默认设备设置播放。使用 QTKit,我能够使用 SetMovieAudioContext() 来完成这样的任务,但在 AVFoundation 中看不到等效项。如何在 OSX 上更改此设置?

【问题讨论】:

    标签: macos cocoa avfoundation avaudioplayer


    【解决方案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 应该可以工作。

    【讨论】:

      猜你喜欢
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多