iOS8でのUIMoviePlayerControllerDidEnterFullscreenNotification
UIWebviewの中で動画再生の監視をNSNotificationCenterを使って、UIMoviePlayerControllerDidEnterFullscreenNotificationで長らく取得してきました。
歴史的にはiOS4からだったかな?
スペルミスがあったので名前の一部がかわったりしましたけど...。
結局、何がしたいかというとUIWebview内部で動画のURLが知りたいためにこのNotificationを監視していたりしたんです。
しかし、iOS8では、UIMoviePlayerControllerDidEnterFullscreenNotificationが使えません。
どうしたらいいかなって色々調べてみるとJavascript使ってやる方法もあるみたいですけど、自分はうまくいきませんでした。(動いたり、動かなかったり。)
そこで、色々調べた結果、UIMoviePlayerControllerDidEnterFullscreenNotificationではなく、AVPlayerItemBecameCurrentNotificationでうまくいきました。
抜粋するとこんな感じかな??
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerDidEnterFullscreen:)
name:@"AVPlayerItemBecameCurrentNotification"
object:nil];
- (void)playerDidEnterFullscreen:(NSNotification *)notification
{
AVPlayerItem *playerItem = [notification object];
if(playerItem == nil) return;
AVURLAsset *asset = (AVURLAsset*)[playerItem asset];
if (asset != nil) {
NSURL *url = [asset URL];
NSString *path = [url absoluteString];
}
}
これで、UIWebviewの中で動画再生したときのURLが取得できました。
しかし、今回のiOS8はちょっと無理なバージョンアップをした感が色々な所で感じられますね。
時々、他のブログでiPhone情報乗せている方へ少しでも恩返しができればと思っていきなりコード乗せたりしちゃいますが、興味ない人はスルーしてくださいね。^o^;