Youtube解雇事件(iOS)

Youtube解雇事件(iOS),ios,xcode,youtube,notifications,Ios,Xcode,Youtube,Notifications,你好 通过使用UIWebview,我现在有了一种在我的应用程序中显示youtube视频的工作方法(使用标签,在webview中找到播放按钮,并触发触摸事件) 工作起来很有魅力。视频弹出并播放。但是,我希望在视频结束或用户单击“完成”按钮时收到一个事件 在互联网上,我发现有一个事件:MPAVControlleriTemplayBackDiEndNotification,您可以在其中收听。然而,这一个没有被调用 经过进一步研究,我发现对于通过UIWebView嵌入的Youtube视频,另一个通知被称

你好

通过使用UIWebview,我现在有了一种在我的应用程序中显示youtube视频的工作方法(使用标签,在webview中找到播放按钮,并触发触摸事件)

工作起来很有魅力。视频弹出并播放。但是,我希望在视频结束或用户单击“完成”按钮时收到一个事件

在互联网上,我发现有一个事件:MPAVControlleriTemplayBackDiEndNotification,您可以在其中收听。然而,这一个没有被调用

经过进一步研究,我发现对于通过UIWebView嵌入的Youtube视频,另一个通知被称为(UIMoviePlayerController IDEXITFullScreenNotification)。不幸的是,这一点也不再有效。()

有没有人知道在视频播放完毕或被驳回后,我如何做一些动作


谢谢

这里您需要的是这样的东西:

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

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

使用
UIMoviePlayerControllerWillExitFullscreenNotification
在用户点击“完成”按钮后获得通知。在iOS6上,
uimovieplayercontrolleridexitfullscreen通知似乎确实被省略了

请注意,…确实……将…不同


有关该主题的更多信息,请再次查看您在问题中引用的帖子中我的更新答案

让我们看看这个场景:

在你看来,你有一个按钮。单击时,您希望直接播放视频。 为此,请将webview作为视图的模式视图打开:

[self presentModalViewController:videoWebView animated:NO];
对于您的webview,您应该使用Youtube API集成和自动播放视频。请参见此处的拟议工作示例:

您将看到视频是在webview视图的模式视图中启动的。检测视频何时被取消(单击“完成”按钮时)的一种方法是在webview类上使用
viewdide
。在这种方法中,您也将关闭webview视图,但是…当此视图最初启动时,您不想关闭它。可以添加布尔属性来避免这种情况

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    if (_videoLaunched) {
        [self dismissModalViewControllerAnimated:YES];
    }
}
viewDidLoad
方法中,将此属性设置为NO,在
webViewDidFinishLoad
方法(webview的委托方法)中,将其设置为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;
}

你试过iOS 6吗?以前尝试过此操作,但此处未触发通知。MPMoviePlayerWillExitFullscreenNotification在iOS 6上对我有效。你能检查一下它是否对你有效吗?不幸的是,它对我无效。也许这与我在UIWebView中使用Youtube视频有关?@fabb这当然是正确的,当在UIWebView中使用Youtube视频时,这个答案没有帮助-这个答案的作者一定错过了原始问题中的这一部分。