美好的一天,
通过使用一个UIWebView中的我现在有一个工作方法,以显示我的应用程序内的YouTube视频(使用标签,找到网页视图中的播放按钮和射击,触摸事件)。
奇迹般有效。 视频弹出并播放。 不过,我想在视频结束或用户点击完成按钮来收到的事件。
在互联网上我发现有一个事件:MPAVControllerItemPlaybackDidEndNotification在那里你可以听。 然而,这一个不会被调用。
经过一番深入研究我发现,通过UIWebView中嵌入的YouTube视频的另一个通知被称为(UIMoviePlayerControllerDidExitFullscreenNotification)。 不幸的是一个不工作,要么了。 ( 在这里找到 )
没有人有任何想法,我怎么可以做一些动作视频播放完毕或已被解雇后?
谢谢
使用UIMoviePlayerControllerWillExitFullscreenNotification
为了得到通知,一旦挖掘完成按钮的用户。 该UIMoviePlayerControllerDidExitFullscreenNotification
看来确实对iOS6的被省略。
介意...没有...比较...会...差!
欲了解更多关于这个问题,再次检查你在你的问题引用了发布在我的更新答案。
让我们看一下这个场景:
![](https://www.manongdao.com/static/images/pcload.jpg)
在你看来,你有一个按钮。 当它被点击,你要直接播放视频。 为了,为了做到这一点,你打开网页流量为您的视图的模式的看法:
[self presentModalViewController:videoWebView animated:NO];
为了您的网页流量,你应该使用YouTube API集成和自动播放视频。 看到这里的建议的工作例如: https://stackoverflow.com/a/15538968
你会看到该视频是在你的WebView视图的模式视图启动。 当视频被驳回检测(“完成”按钮被点击时)的一种方法是使用viewDidAppear
在您的WebView视图类。 在这种方法中,你会然后关闭该网页流量视图太多,但...当该视图是首次推出,你不希望将其关闭。 您可以添加一个布尔属性,以避免这种情况。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (_videoLaunched) {
[self dismissModalViewControllerAnimated:YES];
}
}
在viewDidLoad
的方法,将该属性设置为NO,并在webViewDidFinishLoad
方法(web视图的委托方法)将其设置为YES。
我觉得这回答你的问题的一部分。 关于你有视频的结尾的检测来修改你YT_Player.html
文件,听取状态的变化。
ytPlayer = new YT.Player('media_area', {height: '100%', width: '100%', videoId: 'SbPFDcspRBA',
events: {'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange}
function onPlayerStateChange(e) {
var result = JSON.parse(event.data);
if (result.info == 0) { // Video end
window.location = "videomessage://end";
}
}
});
然后,您将捕获的事件在你的WebView视图并关闭它是这样的:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *url = request.URL;
if ([[url scheme] isEqualToString:@"videomessage"]) {
[self dismissModalViewControllerAnimated:YES];
return YES;
}
return YES;
}
你所需要的就是这样的:
- (void)playerWillExitFullscreen:(NSNotification *)notification
{
//do something...
}
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerWillExitFullscreen:)
name:@"MPMoviePlayerWillExitFullscreenNotification" object:nil];