据我所知,仅当AAC格式的音频编码为MPEG-4或3GPP时,Android 才能播放它。
当应用程序本地存在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进行开发。