在我的应用程序中,我有多个选项卡,每个选项卡上都有一个 AVPlayer 实例。但是,当我激活 AirPlay 时,“第一个玩家获胜”。这意味着当前活动选项卡上的播放器连接到 AirPlay,当我切换到另一个选项卡并按下播放时,什么也没有发生。因此,只有第一个连接到 AirPlay 的 AVPlayer 实例才能真正通过 AirPlay 播放,而其他选项卡上的播放器都不能正常工作。该怎么办?
问问题
1747 次
1 回答
3
解决方案很简单:当包含播放器的视图控制器出现时,您将allowsExternalPlayback
AVPlayer 实例设置为YES
,在消失时将其设置为NO
。
例子:
- (void)viewWillAppear:(BOOL)animated
{
// _player is an instance of AVPlayer
if ([_player respondsToSelector:@selector(setAllowsExternalPlayback:)]) {
// iOS 6+
_player.allowsExternalPlayback = YES;
} else {
// iOS 5
_player.allowsAirPlayVideo = YES;
}
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
// _player is an instance of AVPlayer
if ([_player respondsToSelector:@selector(setAllowsExternalPlayback:)]) {
// iOS 6+
_player.allowsExternalPlayback = NO;
} else {
// iOS 5
_player.allowsAirPlayVideo = NO;
}
[super viewWillDisappear:animated];
}
享受。
于 2013-11-05T20:05:03.070 回答