讓我們看一下這樣的場景:
在你看來,你有一個按鈕。點擊時,您想直接播放視頻。 爲了,要做到這一點,你打開網頁流量爲您的視圖的模式的看法:
[self presentModalViewController:videoWebView animated:NO];
對於網頁視圖,您應該使用YouTube API集成和自動播放視頻。請參閱此處提出的工作示例:https://stackoverflow.com/a/15538968
您會看到該視頻是在您的webview視圖的模式視圖中啓動的。檢測視頻何時解除(點擊「完成」按鈕時)的一種方法是在您的webview視圖類上使用viewDidAppear
。在這種方法中,你將會忽略webview視圖,但是......當這個視圖首先啓動時,你不想解僱它。您可以添加一個布爾屬性來避免這種情況。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (_videoLaunched) {
[self dismissModalViewControllerAnimated:YES];
}
}
在viewDidLoad
方法,該屬性設置爲NO,並在webViewDidFinishLoad
方法(web視圖的委託方法)將其設置爲YES。
我認爲它回答了你的問題的一部分。關於視頻結束的檢測,您必須修改您的文件以偵聽狀態更改。
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?之前嘗試過,通知不在這裏解僱。 – fabb 2012-09-25 19:02:58
MPMoviePlayerWillExitFullscreenNotification適用於iOS 6我可以檢查它是否適合您? – defactodeity 2012-09-25 19:09:41
不幸的是,它不適合我。也許這與我在UIWebView中使用Youtube視頻的事實有關? – fabb 2012-09-26 09:11:36