据我所知,Android只有在编码为MPEG-4或3GPP的情况下才会播放AAC格式的音频。
当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。
发布于 2020-10-07 23:31:21
我发现,如果你在Android上录制具有以下属性的音频文件,你就可以在你的服务器上播放它。它在HTML Audio元素中也播放得很好,但目前只在Firefox上播放。这在未来可能会改变。
Android (JAVA):
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
mediaRecorder.setAudioSamplingRate(44100);
mediaRecorder.setAudioChannels(1);
mediaRecorder.setOutputFile(filePath);
HTML:
<audio id="audioMediaControl" controls src="yourfile.m4a"> Your browser does not support the audio element. </audio>
发布于 2009-12-31 17:31:54
试试看
1) MP.prepareAsync()
2) onPrepared() { mp.start() }
https://stackoverflow.com/questions/1650983
复制相似问题