AirPlay 的音频输出路由

2024-04-04

我已经查看过,但找不到访问音频输出路由的方法,因此我可以检测音频是否通过 AirPlay 输出。

这是我在 iOS 5.0 文档中找到的

kAudioSessionOutputRoute_AirPlay

讨论

这些字符串用作与 kAudioSession_AudioRouteKey_Outputs 数组关联的字典的 kAudioSession_AudioRouteKey_Type 键的值。

我找不到访问 kAudioSession_AudioRouteKey_Outputs 数组的方法。

Thanks


即使 Bassem 似乎已经找到了解决方案,但为了完整起见,以下是如何检测当前输出路由是否为 AirPlay:

- (BOOL)isAirPlayActive{
    CFDictionaryRef currentRouteDescriptionDictionary = nil;
    UInt32 dataSize = sizeof(currentRouteDescriptionDictionary);
    AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription, &dataSize, &currentRouteDescriptionDictionary);
    if (currentRouteDescriptionDictionary) {
        CFArrayRef outputs = CFDictionaryGetValue(currentRouteDescriptionDictionary, kAudioSession_AudioRouteKey_Outputs);
        if (outputs) {
            if(CFArrayGetCount(outputs) > 0) {
                CFDictionaryRef currentOutput = CFArrayGetValueAtIndex(outputs, 0);
                CFStringRef outputType = CFDictionaryGetValue(currentOutput, kAudioSession_AudioRouteKey_Type);
                return (CFStringCompare(outputType, kAudioSessionOutputRoute_AirPlay, 0) == kCFCompareEqualTo);
            }
        }
    }

    return NO;
}

请记住,您必须#import <AudioToolbox/AudioToolbox.h>并链接到 AudioToolbox 框架。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AirPlay 的音频输出路由 的相关文章

随机推荐