android获取资源失败怎么办,android-如何捕获mediaplayer数据源无文件错误...

我有一个mediaplayer应用程序,我在其中使用链接路径从服务器中获取数据源.问题是当我进行测试时,我故意删除了输入到mp.setDataSource(musicUri)的音频链接路径的数据源文件;检查,但我似乎无法捕捉到错误并解决.

我已经替换了mp.prepare();到mp.prepareAsync();和简单的mp.start()

mp.setOnPreparedListener(new OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

// TODO Auto-generated method stub

mp.start();

}

});

在启动前先听Mediaplayer是否准备就绪.

这是堆栈跟踪:

07-23 13:55:52.492: E/MediaPlayer(6870): Attempt to call getDuration without a valid mediaplayer

07-23 13:55:52.492: E/MediaPlayer(6870): error (-38, 0)

07-23 13:55:52.492: E/MediaPlayer(6870): Error (-38,0)

07-23 13:55:52.492: E/MediaPlayer(6870): stop called in state 0

07-23 13:55:52.492: E/MediaPlayer(6870): error (-38, 0)

07-23 13:55:52.492: E/MediaPlayer(6870): error (1, -107)

似乎没有任何效果,我想捕获此错误以修复可能导致媒体播放器出现的异常结果.任何帮助都可以.谢谢!

编辑:

好的,所以我添加了onErrorListener,但仍然无法正常工作:

mp.reset();

mp.setDataSource(musicUri);

mp.prepareAsync();

// mp.prepare();

mp.setOnErrorListener(new OnErrorListener() {

@Override

public boolean onError(final MediaPlayer mp, final int what,

final int extra) {

Log.e(Constant.TAG_MYREC, "Error occurred while playing audio.");

mp.stop();

return false;

}

});

mp.setOnPreparedListener(new OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

// TODO Auto-generated method stub

mp.start();

}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值