Miejmy w tym scenariuszu:

Państwa zdaniem, masz przycisk. Po kliknięciu chcesz bezpośrednio odtwarzać wideo. W celu, aby to zrobić, trzeba otworzyć webview jako modalnego widzenia widoku:
[self presentModalViewController:videoWebView animated:NO];
Dla WebView, należy użyć Youtube API do integracji i automatycznie odtwarzać wideo. Zobacz proponowany przykład pracy tutaj: https://stackoverflow.com/a/15538968
Zobaczysz, że wideo jest uruchamiane w trybie modalnym widoku Twojej przeglądarki. Jednym ze sposobów wykrycia, kiedy film wideo zostanie odrzucony (po kliknięciu przycisku "done"), jest użycie viewDidAppear
w klasie widoku z podglądem. W tej metodzie również odrzucisz widok webview, ale ... kiedy ten widok jest uruchamiany na początku, nie chcesz go odrzucić. Możesz dodać właściwość boolean, aby tego uniknąć.
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (_videoLaunched) {
[self dismissModalViewControllerAnimated:YES];
}
}
W sposobie viewDidLoad
, ta właściwość NO w sposobie webViewDidFinishLoad
(metoda delegat WebView) ustawiają się na YES.
Myślę, że odpowiada na jedną część pytania.Jeśli chodzi o wykrywanie końca filmu, musisz zmodyfikować plik YT_Player.html
, aby posłuchać zmian stanu.
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";
}
}
});
Będziesz następnie połowu zdarzenie w widoku Webview i odrzucić to tak:
-(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;
}
Próbowałeś z iOS 6? Wypróbowaliśmy to wcześniej, powiadomienie nie uruchamia się tutaj. – fabb
MPMoviePlayerWillExitFullscreenNotification działa dla mnie na iOS 6. Czy możesz sprawdzić, czy to działa? – defactodeity
Niestety, to nie działa dla mnie. Może to ma związek z faktem, że używam wideo z Youtube w UIWebView? – fabb