Я много об этом искал .. Вот решение, которое я нашел для получения вызова с уведомлением о завершении воспроизведения. Протестированный код на iOS6.0 и выше . Все благодаря @Morten.
В viewDidLoad добавить наблюдателя
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playbackDidEnd:)
name:@"MPAVControllerItemPlaybackDidEndNotification"//@"MPAVControllerPlaybackStateChangedNotification"
object:nil];
Затем просто добавьте следующий код JavaScript webViewDidFinishLoad
делегат, как показано ниже
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//http://stackoverflow.com/a/12504918/860488
[videoView stringByEvaluatingJavaScriptFromString:@"\
var intervalId = setInterval(function() { \
var vph5 = document.getElementById(\"video-player\");\
if (vph5) {\
vph5.playVideo();\
clearInterval(intervalId);\
} \
}, 100);"];
}
- (void)playbackDidEnd:(NSNotification *)note
{
//do your stuff here
[videoView removeFromSuperview];
videoView.delegate = nil;
videoView = nil;
}
Вы получите завершение вызова PlayDid в выбранном выше и можете делать все, что вам нужно.
Удачного кодирования !!