2007年11月30日
Android覚え書き・音楽ファイル再生はまだ無理かも?
Media APIの解説ページには音楽ファイルのパスを指定して再生する方法が書かれているが、どうもAndroidのファイルシステムは一般のOSとは違うらしい。アプリケーションデータの扱い方を解説するページを見ると、ファイルを含めて全てのアプリケーションデータは各アプリケーションに固有のものだ、と書かれている。つまり、音楽ファイルがあって音楽再生アプリがあるのではなくて、音楽再生アプリの一部として音楽ファイルがあるということ。そしてアプリケーションデータを他のアプリケーションでも使えるようにするための仕組みとしてContent Providerがある。
Content Providerが提供するデータにアクセスする際は"content://"で始まるURIの形式で指定する。Media APIの解説ページに三つ目の方法としてWeb上にあるMP3ファイルのURIを指定する方法が書かれているので、この方法でローカルにあるファイルを"content://"の形式で指定する方法もありそうだ。
しかし、アクセス方法の解説ページには写真データのURIとして"content://images/media/128"などという例が出てくるが、音楽ファイルの例はない。「Androidには、音楽ファイル、画像ファイル、電話番号など様々なタイプのデータに対するContent Providerがある。Content Providerの一覧はandroid.providerパッケージにあるクラスを通じて提供されている」と書かれているが、android.providerのリファレンスページを見ても音楽ファイルに関する記述はない。
どうにもならないのでGoogleグループのAndroid Developersで質問しようとしたら、Note About API Documentationという記事が先頭に出ていた。APIのドキュメントに書かれていないものはたぶん実装もされていない、というアナウンスだ。もう少し待て、ということ。