YouTube的解雇事件(IOS)(Youtube dismissal event (iOS))

2019-09-16 18:44发布

美好的一天,

通过使用一个UIWebView中的我现在有一个工作方法,以显示我的应用程序内的YouTube视频(使用标签,找到网页视图中的播放按钮和射击,触摸事件)。

奇迹般有效。 视频弹出并播放。 不过,我想在视频结束或用户点击完成按钮来收到的事件。

在互联网上我发现有一个事件:MPAVControllerItemPlaybackDidEndNotification在那里你可以听。 然而,这一个不会被调用。

经过一番深入研究我发现,通过UIWebView中嵌入的YouTube视频的另一个通知被称为(UIMoviePlayerControllerDidExitFullscreenNotification)。 不幸的是一个不工作,要么了。 ( 在这里找到 )

没有人有任何想法,我怎么可以做一些动作视频播放完毕或已被解雇后?

谢谢

Answer 1:

使用UIMoviePlayerControllerWillExitFullscreenNotification为了得到通知,一旦挖掘完成按钮的用户。 该UIMoviePlayerControllerDidExitFullscreenNotification看来确实对iOS6的被省略。

介意...没有...比较...会...差!

欲了解更多关于这个问题,再次检查你在你的问题引用了发布在我的更新答案。



Answer 2:

让我们看一下这个场景:

在你看来,你有一个按钮。 当它被点击,你要直接播放视频。 为了,为了做到这一点,你打开网页流量为您的视图的模式的看法:

[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;
}


Answer 3:

你所需要的就是这样的:

- (void)playerWillExitFullscreen:(NSNotification *)notification
{
//do something...
}

[[NSNotificationCenter defaultCenter] addObserver:self
                                     selector:@selector(playerWillExitFullscreen:) 
name:@"MPMoviePlayerWillExitFullscreenNotification" object:nil];


文章来源: Youtube dismissal event (iOS)