我正在使用 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 = 尝试
tag2
永远不会执行
如果(有时)mediaPlayer
已准备好,我会收到以下日志:
tag1 = 尝试
tag2 = 0
_ 既 Not Acceptable 也不可用
此外,当我调用 mediaPlayer.setOnErrorListener
时,我收到错误 1,-1004
或 1,-2147483648
。此外,mediaPlayer.setOnInfoListener 没有提供任何信息;我认为它从未被调用过...
可能是什么问题?
不用说,在服务器文件管理器的日志文件夹中,我发现了这个:“stagefright/1.2 (Linux; Android 4.4.4)”
。我认为这可以帮助解决问题。 另外,与此相关的是,问题是否是由 PHP 扩展引起的?如果是,激活哪个扩展可以解决此问题?
非常感谢任何帮助。
最佳答案
您有一个MEDIA_ERROR_IO 。正如文档所说,这是针对文件或网络相关操作错误。
在大多数情况下,问题出在 MediaPlayer 类的实现中,或者可能是在 Android 4 中,如上所述 here
我会推荐你ExoPlayer ,相反。
关于java - 为什么 MediaPlayer 没有准备好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59581173/