我遇到了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。
答案 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自己的基本功能代码基本上已被打破。