YTPlayerView youtube-ios-player-helper暂停不起作用

时间:2015-03-26 23:58:27

标签: ios objective-c video youtube

我遇到了Youtube youtube-ios-player-helper库的问题。我可以将视频加载到播放器中并播放,但如果我点击暂停,视频会停止几秒钟,然后再次开始播放。

用于启动视频的非常简单的UIViewController代码是:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.player = [[YTPlayerView alloc] initWithFrame:CGRectMake(X, Y, WIDTH, HEIGHT)];

    self.player.delegate = self;
    [self.view addSubview:self.player];
    [self.player loadWithVideoId:@"bQCjOm4p5jM"];

}

我使用NSLog检测了didChangeToState委托方法,如下所示:

- (void)playerView:(YTPlayerView *)playerView didChangeToState:(YTPlayerState)state {
    switch (state) {
        case kYTPlayerStatePlaying:
            NSLog(@"Started playback");
            break;
        case kYTPlayerStatePaused:
            NSLog(@"Paused playback");
            break;
        default:
            NSLog(@"didChangeToState %d", state);
            break;
    }
}

在Xcode日志中,当我点按“播放”时开始视频播放,我看到了:

didChangeToState 4

值{4似乎未在YTPlayerView.m中定义。当视频实际开始播放时,我会看到预期的Started playback日志消息。

当我点按“暂停”时,我在日志中看不到任何内容(未触发didChangeToState事件 - 我预期的事件将是{{1}根据YTPlayerView文档)。但是几秒钟之后,视频又开始播放,然后我看到两个连续的kYTPlayerStatePaused日志消息(Started playback个事件)。每次我按“暂停”#39;尝试暂停视频,它暂停几秒钟(没有kYTPlayerStatePlaying事件),但随后又开始播放,我看到kYTPlayerStatePaused日志消息。

其他人看到了吗?有谁知道从哪里去?这是Xcode 6.2,构建目标是iOS 8.0。

1 个答案:

答案 0 :(得分:9)

我在Github问题跟踪器中找到了解决方案。对不起,我想我在之前的研究中错过了这个。

所描述的修复程序位于:https://github.com/youtube/youtube-ios-player-helper/issues/86

YTPlayerView-iframe-player.html中,删除或评论以下代码。

window.setInterval(forcePlay, 5000);

还有另一个建议的修补程序完全取代了YTPlayerView-iframe-player.html文件,但上面似乎对我有用。我担心Google自己的基本功能代码基本上已被打破。