UIWebViewでvideoタグを使うとき いきなりfull screenにしない方法
videoタグタップしたらいきなりfull screenになってしもうた
ビンゴ中西です。
HTML5のvideoタグをUIWebViewの中から使ってみました。
するとどうでしょう! タップした瞬間にいきなり全画面表示!
いやいやいや いきなりすぎる! What's Happening!!
ということで、いきなりは全画面にならない方法。
インラインで表示したい
full screenの反対それがインライン表示だ!
厳密に反対の意味になるのかは知らないが、
とりあえずインラインにすればやりたいことが実現される。
ではどうすればよいのか?
リファレンスさんや! リファレンスさんに書いとったでえええ!
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html
YESや! YESにするんや!!
@property(nonatomic) BOOL allowsInlineMediaPlayback
このプロパティをYESにしてやりましょう。
まだ足りひんのや
これだけでいけるかと思ったんですけど、なにやら
webkit-playsinlineを足せと英語で書いてあるように読める。
どこやどこに足したらええのんや!
調べるとHTML5のvideoタグに足せるみたい。
<video id="Video1" controls height="240" width="100%" title="video element" src="hoge.m3u8" poster="poster.png" webkit-playsinline>HTML5 Video is required for this example</video>
こんな感じ。
full screenが終了したのフックできる?
videoタグのコントローラには全画面にするボタンがあるので、
これをタップされるとまだ全画面にすることはできる。
そこで気になったのだが、
full screen中に、左上に「Done」ボタンが表示されているが、
これがタップされfull screenが終了したことを知ることはできないのだろうか?
ということ
できるようだ、ただしドキュメントに書いていないことをしているので、リジェクトされるかもしれないと記載されている。
ios - How to receive NSNotifications from UIWebView embedded YouTube video playback - Stack Overflow
引用ソース
- (void)playerWillExitFullscreen:(NSNotification *)notification { //do something... }
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerWillExitFullscreen:) name:@"UIMoviePlayerControllerWillExitFullscreenNotification" object:nil];
たしかにNotificationされることを確かめることができたが、
使うか使わないかは各人の判断になることだろう。