ios - 使用 AVPlayer 的多个实例进行 AirPlay

标签 ios objective-c cocoa-touch avplayer airplay

在我的应用程序中,我有多个选项卡,每个选项卡上都有一个 AVPlayer 实例。然而,当我激活 AirPlay 时,“第一个玩家获胜”。这意味着当前事件选项卡上的播放器连接到 AirPlay,当我切换到其他选项卡并按播放键时,没有任何反应。因此,只有连接到 AirPlay 的 AVPlayer 的第一个实例才能真正通过 AirPlay 进行播放,而其他选项卡上的播放器都无法工作。该怎么办?

最佳答案

解决方案非常简单:当包含播放器的 View Controller 出现时,将 AVPlayer 实例上的 allowsExternalPlayback 设置为 YES,当 in 消失时,将其设置为

示例:

- (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];
}

享受吧。

关于ios - 使用 AVPlayer 的多个实例进行 AirPlay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797618/

相关文章:

ios - 在哪里添加事件指示器 View ?

ios - UIKeyboard 弹出时 UIWindow 子类不旋转

objective-c - 如何防止 NSTableView 的所有行在启动时被选择

objective-c - 获取远程txt文件的内容

ios - 如何定义一个符合协议(protocol)的对象数组?

cocoa - 不使用 Interface Builder 能给我带来什么吗?

iOS 7 私有(private) API 使用

ios 设备上的构建大小更大

ios - prepareForSegue 在 UIButton Action 事件之前调用

iphone - 从 JSON 中过滤 NSArray?