NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
//Direct audio to speakers when there is no headphone
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[player setAllowsExternalPlayback:YES];
[player setUsesExternalPlaybackWhileExternalScreenIsActive: YES];
[player setAllowsAirPlayVideo:NO];
以上是我的代码尝试设置适当的会话以启用Airplay。它有时会起作用,但无论它是否有效,它通常会在Airplay菜单中列出两次的“iPhone”,有时候不会显示实际的Airplay设备。点击这两个重复选项中的任何一个似乎都没有做任何事情。此外,状态栏上的播放图标有时会出现,有时则不会。我猜每次都没有正确设置会话。
有谁可以告诉我这里我做错了什么?!另外,如果我想通过蓝牙播放,我是否需要实现其他代理?
答案 0 :(得分:1)
我今天看到你的帖子,在这种模式下使用你的代码:
在你的AppDelegate .M中:
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
[[AVAudioSession sharedInstance] setActive:NO error:nil];
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
在你的View.m中使用:
[player setAllowsExternalPlayback:YES];
[player setUsesExternalPlaybackWhileExternalScreenIsActive: YES];
[player setAllowsAirPlayVideo:NO];//this is deprecated in iOS 6.0
希望这有助于您或未来的人!
答案 1 :(得分:0)
我看到但同时又简单又奇怪:)你必须只删除这个功能。
这种方法:
[player setAllowsExternalPlayback:YES];
[player setUsesExternalPlaybackWhileExternalScreenIsActive: YES];
[player setAllowsAirPlayVideo:NO];//this is deprecated in iOS 6.0
成为:
[player setAllowsExternalPlayback:YES];
[player setUsesExternalPlaybackWhileExternalScreenIsActive: YES];
在 info.plist 允许必需的背景模式 a并设置:应用播放音频和应用与附件进行通信< / strong>,然后添加一行并设置:应用程序使用WiFi 。
这就是全部;)
PS:你可以帮我解决我的问题here谢谢。