我正在使用MediaPlayer
加载mp3文件并在线播放。我正在使用此代码:
try{
Log.i("tag1", "try");
mediaPlayer.setDataSource(activity.this, Uri.parse("link"));
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
Log.i("tag2", "" + mediaPlayer.getDuration());
}
});
} catch(IOException e) {
e.printStackTrace();
}
大多数时候什么都没准备,所以我得到的log.i
结果如下:
tag1 = try
taq2
从不执行
[如果有时仅准备了mediaPlayer
,我将获得以下日志:
tag1 = try
tag2 = 0
_这是不可接受或不可用的
[另外,当我调用mediaPlayer.setOnErrorListener
时,出现错误1,-1004
或1,-2147483648
。此外,mediaPlayer.setOnInfoListener
不提供任何内容;我认为它从未被称为...
可能是什么问题?
不必提一下,在服务器文件管理器的日志文件夹中,我发现了此错误:"stagefright/1.2 (Linux; Android 4.4.4)"
。我认为这可以帮助解决问题。 也与此相关,问题可能是由PHP扩展引起的吗?如果是,激活哪个扩展程序可以解决此问题?
真的很感谢您的帮助。
您有一个MEDIA_ERROR_IO。正如文档所述,这是针对文件或网络相关的操作错误。
在大多数情况下,问题出在MediaPlayer类的实现中,或者在here中提到的android 4中]
我建议您改为ExoPlayer。
mediaPlayer.start()
中缺少MediaPlayer.OnPreparedListener()
。请参阅附带的kotlin代码以获取带有示例http request的扩展类]
错误1004
:未找到源(例如路径错误或网址中没有流)