Bas*_*sem 5 audio audiotoolbox ios ios5
我看了但是找不到一种方法来访问音频输出路由,所以我可以检测音频是否通过AirPlay传出.
这是我在iOS 5.0文档中找到的
kAudioSessionOutputRoute_AirPlay
Run Code Online (Sandbox Code Playgroud)
讨论
这些字符串用作与kAudioSession_AudioRouteKey_Outputs数组关联的字典的kAudioSession_AudioRouteKey_Type键的值.
我找不到访问kAudioSession_AudioRouteKey_Outputs数组的方法.
谢谢
Even if Bassem seems to have found a solution, for completion's sake, here's how to detect whether the current output route is AirPlay or not:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
Keep in mind that you have to #import <AudioToolbox/AudioToolbox.h> and link against the AudioToolbox framework.
| 归档时间: |
|
| 查看次数: |
3509 次 |
| 最近记录: |