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されることを確かめることができたが、
使うか使わないかは各人の判断になることだろう。