在我的应用中,我有多个标签,每个标签上都有一个AVPlayer实例。然而,当我激活AirPlay时,“第一个玩家获胜”。这意味着当前活动标签上的播放器连接到AirPlay,当我切换到另一个标签并按下播放时,没有任何反应。因此,只有连接到AirPlay的AVPlayer的第一个实例才能实际播放AirPlay,而其他选项卡上的播放器都无法正常工作。怎么办?
答案 0 :(得分:2)
解决方案非常简单:当包含播放器的视图控制器出现时,您将AVPlayer实例上的allowsExternalPlayback
设置为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];
}
享受。