Android:サウンドについて

HTML5のAudioは利用できない?

Androidではサウンドの再生はhtml5のAudioを利用しようと思ったのですが
エミューレーターも実機も機能しませんでした。
Mac上のブラウザでは機能するのを確認しています。
あまり期待していなかったので、原因を追及することはやめて早々に
Androidでのサウンド再生について調べることにしました。
 

media playerとsound pool

参考になったのは以下のサイト。BGMのような長いサウンド再生に便利な
media playerとSEのような短いサウンドに便利なsound poolがあるそうです。
→参考:Developers.ID様「BGM や効果音を再生する
→参考:oundPoolクラスを使ってwav形式、ogg形式の効果音(SE)を鳴らしてみる
 

バックグラウンドでも鳴り続ける

サンプルを作成して動作検証したら、iOSと仕様が異なることに気が付きました。
ホームボタンをクリックして、アプリがバックグラウンドにまわってもBGMが鳴り続けるのです。
※iOSは自動的にフェードアウト
 
なので、バックグラウンドにまわった時はBGMを停止するように処理を書かなければいけません。
アプリの状態は以下のサイトが参考になりました。
→参考:JavaDrive様「アクティビティのライフサイクル
 
今回のサンプルでは、onCreateのタイミングでBGMとSEの設定をして
onStopのタイミングでBGMの一時停止。
onRestartのタイミングでBGMの再生(BGMがONのときだけ)
そしてアプリが完全に終了するonDestroyでBGMの停止とSEのリリースを
するようにしました。
 

サンプル動画


エミュレータだと動画のようにバックグラウンドにまわるとすぐにBGMが
停止するけれど、実機のis11tでは2〜3秒くらい止まらない…。
 

その他

サウンドデータはresフォルダ内にrawフォルダを作成して、そこに入れる。
次回はメーラーの起動に挑戦しようと思います。
 
 
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


+ 8 = 十五


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>