我已经看过,但是找不到访问音频输出路线的方法,所以我可以检测音频是否通过AirPlay发出。
这是我在iOS 5.0文档中找到的内容
kAudioSessionOutputRoute_AirPlay
讨论
我找不到获取对kAudioSession_AudioRouteKey_Outputs数组的访问的方法。
谢谢
最佳答案
即使Bassem似乎找到了解决方案,为了完成起见,这还是如何检测当前输出路径是否为AirPlay的方法:
- (BOOL)isAirPlayActive{
CFDictionaryRef currentRouteDescriptionDictionary = nil;
UInt32 dataSize = sizeof(currentRouteDescriptionDictionary);
AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription, &dataSize, ¤tRouteDescriptionDictionary);
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框架。