AndroidのWebViewでHTML5の が再生されない場合の解決策

Monacaでアプリ開発をしていた際に、HTML5の<video>タグや<audio>タグを用いたメディア再生で、ビデオや音声がうまく再生されない現象がありました。

症状

いろいろ試してみて、以下の条件下で再生できないことがわかりました。

  1. Andriod 4.3以下のWebView
  2. ローカルのビデオやオーディオファイルを再生

1.に関しては、Android 4.4からはWebViewがBlinkになり、またAndroid 5.0からはWebViewがアプリ化されシステムのバージョンとは関係なくGoogle Playでアップデートされるようになったので、この問題が発生しないのかと思われます。
WebViewがwebkitでアップデートもされないAndroid 4.3以下で問題となります。また、システムが常にアップデートされるiOSでも問題なく再生されます。

2.に関しては、アプリ内からネット上のファイルを再生することは可能でした。
アプリ内に格納したファイルの再生で問題が発生します。

解決策

サーバーにファイルをアップロードし、それを再生する!

あまりスマートな解決策ではないのですが、これが一番お手軽です。

サーバーにファイルをアップロードし、アプリから絶対パスでそのファイルを指定し再生するのが確実です。

ネットにつながっていないとアプリが正しく動作しないのもどうかと思いますが、最近のアプリはほとんどがネットワーク依存なのでそれほど大きな問題ではないかなーと思い、これでOKとしました・・・。

世の中のAndroid全てが4.4以上になるまで耐えましょう。

参考サイト

http://stackoverflow.com/questions/15494444/html5-audio-tag-not-working-in-android-webview