私が理解しているように、MPEG-4 または 3GPP としてエンコードされている場合、Android は AAC 形式のオーディオのみを再生します。
アプリに対してローカルの場合、M4A としてエンコードされた AAC オーディオを再生できますが、サーバーから取得すると失敗します。
m4a ファイルはローカルの res/raw ディレクトリに保持されているため、次のように動作します。
MediaPlayer mp = MediaPlayer.create(this, R.raw.*file*);
mp.start();
以下は動作しません。(ただし、MP3 の場合)。
Uri uri = Uri.parse("http://*example.com*/blah.m4a");
MediaPlayer mp = MediaPlayer.create(this, uri);
mp.start();
m4aオーディオファイルがローカルではない場合に失敗する理由を誰かが明らかにできますか?
これが(一部の)エラーです...
ERROR/PlayerDriver(542): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus
ERROR/MediaPlayer(769): error (200, -32)
WARN/PlayerDriver(542): PVMFInfoErrorHandlingComplete
DEBUG/MediaPlayer(769): create failed:
DEBUG/MediaPlayer(769): java.io.IOException: Prepare failed.: status=0xC8
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.prepare(Native Method)
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.create(MediaPlayer.java:530)
DEBUG/MediaPlayer(769): at android.media.MediaPlayer.create(MediaPlayer.java:507)
...
SDK 1.6 をターゲットにしています。