MediaPlayer为什么不准备?

问题描述 投票:2回答:2

我正在使用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,-10041,-2147483648。此外,mediaPlayer.setOnInfoListener不提供任何内容;我认为它从未被称为...

可能是什么问题?

不必提一下,在服务器文件管理器的日志文件夹中,我发现了此错误:"stagefright/1.2 (Linux; Android 4.4.4)"。我认为这可以帮助解决问题。 也与此相关,问题可能是由PHP扩展引起的吗?如果是,激活哪个扩展程序可以解决此问题?


真的很感谢您的帮助。

java android android-mediaplayer
2个回答
2
投票

您有一个MEDIA_ERROR_IO。正如文档所述,这是针对文件或网络相关的操作错误。

在大多数情况下,问题出在MediaPlayer类的实现中,或者在here中提到的android 4中]

我建议您改为ExoPlayer


1
投票

mediaPlayer.start()中缺少MediaPlayer.OnPreparedListener()。请参阅附带的kotlin代码以获取带有示例http request的扩展类]

错误1004:未找到源(例如路径错误或网址中没有流)

© www.soinside.com 2019 - 2024. All rights reserved.