问题描述
我正在尝试使用MediaPlayer类将音频文件加载/播放到我的android应用程序中。
可以从两个不同的来源加载文件:1.本地存储2. HTTP地址
当我加载长的.mp3文件(超过15分钟)时,它工作正常,但对于.amr文件,MediaPlayer无法播放超过4分钟的音频文件,并返回以下错误代码:-21474833648
让我说得更清楚:
在我的应用程序中,.mp3文件无论从任何资源和任何长度播放都没有问题。
长度为(大约)4分钟或更短的.amr文件也可以正常播放。
但是长的.amr音频文件(超过15分钟)带有未知的错误代码-21474833648。
NB:当我以20分钟的长度录制.amr格式的语音文件并尝试再次播放时,没有问题。但是,当我将其保存在本地存储中并尝试再次加载时,会出现错误。
注意:我在Samsung S9 +和A50(android 10)中遇到此问题。我在android 9或更低版本中测试过的其他设备没有问题。
这个问题使我感到震惊,请帮助我解决它。
最后,我将提供部分代码。
String url = "http://[my-domain]/audio.amr"; isPrepared=false;
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
} catch (Exception e) {
e.printstacktrace();
Log.d(TAG,"handleMediaPlayer: "+e);
}
mediaPlayer.setonPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
isPrepared =true;
totalDuration = mediaPlayer.getDuration();
playSeekbar.setMax(totalDuration);
playSeekbar.setEnabled(true);
}
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)