2011-05-25

Androidでのサウンドファイル再生を試みた

表題のとおりAndroidで音声ファイルの再生を試みたのだが、しょうもないところでつまづいたのでメモ書き。

エミュレーターの設定
サウンドファイルを再生するには、
  • エミュレータオプションで –useaudioを指定する
といった記述がネットで見られるが、これはなくてもいい感じ。記事が古い?エミュレーターのハードウェア設定では、Audio PlayBack Support という項目があるようだが、デフォルトでYesになっているらしい。いちおう僕は念の為にしてしておいたけど。

再生の手順
基本的には下記の処理でオッケイということになる。
MediaPlayer mp = MediaPlayer.create(this, R.raw.????);
 mp.prepare(); // 準備(ここは注意点。後述の説明を読む)
 mp.start(); // 再生
ただ、prepareメソッドでちょっとハマった。最初、この記述でプログラムを動かすと予期せぬエラーがでて再生できない。リソースの読み取りタイミングに問題があるのかなーとか思ってたら、どうやらprepareメソッドには次の注意点があるようだ。
  • 上記のようにcreateメソッドをつかってMediaPlayerのインスタンスを生成した場合、既にprepareの状態になっている。この状態でprepareメソッドを呼んではいけない
  • MediaPlayerクラスのインスタンスを new することで生成した場合は、prepareメソッドを呼ばなければならない。
ということらしい。というわけで、上述のプログラムでは、2行目は必要ないということになります。


0 件のコメント:

コメントを投稿