2007年11月25日

Android覚え書き・音楽ファイル再生

Androidで音楽ファイルを再生してみた。すでにやった人がいるのでとても参考になった。とりあえずメモ書き。

  • 音楽ファイル、動画ファイルはいずれもandroid.media.MediaPlayerを使って再生する。エミュレータにはコマンドラインオプションとして"-useaudio"を付ける必要がある。
  • 再生ファイルを指定する方法が解説ページに三つ紹介されている。このうちプロジェクトフォルダの中のres/rawにファイルを入れる方法では、長いファイルを指定すると起動時にNullPointerExceptionが起こってしまう。30秒だとOK、5分だとNG。この方法はおそらく警告音や効果音のためのものだろう。エミュレータにファイルを転送する方法なら5分のファイルも再生可能。ただ、エミュレータを再起動すると転送したファイルが消えてしまうのが面倒。エミュレータからPCのハードディスクをマウントする方法はないだろうか?
  • ファイルのどこまで再生したかを示す情報はandroid.media.MediaPlayerでは受け取れない。タイマーを張ってgetCurrentPosition()で取るしかない?
  • MP3は再生できたが、Ogg Vorbisはダメ。サポートされているフォーマットがどこかに書かれているはずだが、見つからなかった。
  • MP3のタグ情報を取得する方法は提供されていない。android.media.MediaPlayerは指定されたファイルを再生するだけ。

今のAndroidには日本語の入力や表示の仕組みもなさそうだ。Open Handset AllianceにはドコモやKDDIも入っているからきっと何か考えてくれているだろうとは思うが、日本にAndroid搭載端末が現れるのは当分先かもしれない。

追記:
エミュレータを再起動すると転送したファイルが消えてしまう、というのは誤解だった。/dataの下に置けば消えない。タイマーに関してはAndroid Developers Blogの記事が参考になりそう。


kazhik at 18:33│Comments(4)TrackBack(0)Android 

トラックバックURL

この記事へのコメント

1. Posted by s_welt   2007年11月26日 01:53
こんにちは、リンク貼っていただいてありがとうございます。
Schlechte Weltのs_weltと申します。

あの記事以来MediaPlayerは触ってないんですが、
MediaPlayerだとどこまで再生したか調べられないんですね。。
うーん、なかなかめんどくさそうです。

Android関連の情報が少なく大変ですが頑張っていきましょう!
2. Posted by kazhik   2007年11月26日 20:50
こんにちは、s_weltさん。

s_weltさんをはじめ、早くもいろいろ作っている人が結構いるので参考になっています。今後もよろしくお願いします。
3. Posted by 安藤恐竜   2008年02月03日 23:40
MediaPlayerの再生位置、Listnerで拾ってるコードがあったような気がする。これだっけっと思ったけど違った。思い出したらまた来ます。
http://davanum.wordpress.com/2007/12/29/android-videomusic-player-sample-from-local-disk-as-well-as-remote-urls/

MP3再生はコレも参考になります。
http://www.helloandroid.com/node/134

でも、どうもFilterクラスの挙動が怪しくて、ZaurusだとSDが読めなかったりするので色々とホゲです。
4. Posted by kazhik   2008年02月04日 20:32
安藤恐竜さん、コメントありがとうございます。

MediaPlayer関係のAPIはまだこれからの部分が多い気がしています。もうすぐ出るらしい新しいSDKに期待しています。

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔