Давайте посмотрим на этот сценарий:
По вашему мнению, у вас есть кнопка. Когда он щелкнут, вы хотите напрямую воспроизвести видео. Для того, чтобы сделать это, вы открываете WebView как модальный зрения вашей точки зрения:
[self presentModalViewController:videoWebView animated:NO];
Для вашего WebView, вы должны использовать Youtube API для интеграции и автовоспроизведение видео. См. Предлагаемый рабочий пример здесь: https://stackoverflow.com/a/15538968
Вы увидите, что видеоролик запущен в режиме просмотра вашего веб-просмотра. Один из способов обнаружить, когда видео отключено (когда нажата кнопка «done»), следует использовать viewDidAppear
в вашем классе просмотра веб-просмотра. В этом методе вы также упустите представление веб-просмотра, но ... когда это представление запускается сначала, вы не хотите его отклонять. Вы можете добавить свойство boolean, чтобы этого избежать.
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (_videoLaunched) {
[self dismissModalViewControllerAnimated:YES];
}
}
В методе viewDidLoad
, установить это свойство NO и в webViewDidFinishLoad
метода (метод делегат WebView) установить его на ДА.
Я думаю, что он отвечает на одну часть вашего вопроса.Что касается обнаружения конца видео, вам необходимо изменить файл 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;
}
Пробовали ли вы с прошивкой 6? Пробовал это раньше, уведомление здесь не стреляет. – fabb
MPMoviePlayerWillExitFullscreenNotification работает для меня на iOS 6. Можете ли вы проверить, работает ли он на вас? – defactodeity
К сожалению, это не работает для меня. Может быть, это связано с тем, что я использую видео Youtube в UIWebView? – fabb