errand softのブログ

Androidのアプリ開発に関する記事を書いていきます。

WebViewFragmentならYoutubeの再生を簡単に止められる

 Androidのアプリで簡単にコンテンツ表示するにはWebViewが手っ取り早い。

でも、WebViewには色々と罠がある。表示が重かったり、Androidのversionによって差異があったりする。

だが、その中でも一番重い罠は、WebView上で動画や音楽再生した際にアプリがバックグラウンドに回っても止まってくれないことだろう。

バックグラウンドで走り続けることがなぜ困るかというと、たとえば電話が掛ってきた際にも鳴り続けるからだ。

上司から掛ってきた電話の裏できゃりーぱみゅぱみゅが流れ続けている。そしてそれが上司にも聞かれているという状況は企業戦士として勘弁願いたい。

 

 それは下記の手順で解決できると思うが、もっと簡単に対処する方法もある。

【参考】webviewなAndroidアプリでFlashを使っている時に、backgroundに回った時にFlashを中断(音や動画の停止)する方法

 

 その方法とはWebViewでなく、WebViewFragmentを使うことである。

【参考】Android WebViewFragmentでFlash

 

 WebViewFragmentはAndroid 3.0以降でないと使用できないが、WebViewの代わりに使用することで、アプリの状態を考慮せずに気軽に使うことができるようになる。

なお、参照先ではコードからFrameLayoutにWebViewFragmentを詰めているが、activityのxml上にfragmentを書く形でも実装できるので、以下のように書くのもあり。

<fragment android:layout_height="match_parent" android:layout_width="match_parent" android:name="com.example.hogehoge.YoutubeFragment" />

android:nameは対象のソースを指定する