我有以下代码:
mp = new MediaPlayer();
try {
mp.setDataSource(URL);
} catch (Exception e) {
e.printStackTrace();
}
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
mp.prepareAsync();
我正在做我应该做的确切事情,以便正确处理媒体播放器的状态但我仍然有错误:
停止调用状态1错误(-38,0)
有人可以帮忙吗?非常感谢!
更新: 我的代码运行正常,我在网上找到一些链接,但它无法在我的服务器上播放我的mp3文件,例如链接:http://111.blabla/wms/wp-content/upload/audio/mysong.mp3 使用VLC可以播放我的文件
答案 0 :(得分:0)
错误38表示您要求MediaPlayer在处于错误状态时执行某些操作
看一下android文档中的mediaplayer状态图
根据图表,你必须调用setDataSource()和prepare() 在调用start()之前。
之前可能发生了一些错误。您的logcat应该指向正确的方向。
由于您正在接收准备异步回调,我猜数据源中存在错误。
你的setDataSource看起来有点奇怪,因为我的期望就像是
setDataSource(currentConext, url)
而不仅仅是
setDataSource(url)