java - 我无法理解这个 MediaPlayer 错误 : MediaPlayerNative: stop called in state 0, mPlayer(0x7efba92280)

标签 java android performance android-studio

当应用程序启动时,一切都很好。但一段时间后它停止播放声音。但应用程序不会崩溃。我不明白这有什么问题。

这是我的 MediaPlayer 代码:

 holder.btnPlay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (mediaPlayer!=null){
                    mediaPlayer.stop();
                }
                mediaPlayer =MediaPlayer.create(mContext,mChineseLanguages.get(position).getSound());
                mediaPlayer.start();

            }
        }); 

在 logcats 中显示以下错误

MediaPlayerNative: stop called in state 0, 
mPlayer(0x7efba92280) MediaPlayerNative: error (-38, 0) 

最佳答案

您需要实现mediaPlayer的onPreparedListener并启动其中的播放器。产生上述错误是因为您在播放器达到 onPrepared 状态之前启动了播放器。

例如-

mediaPlayer.setDataSource(url); 
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.prepareAsync();

public void onPrepared(MediaPlayer player) {
    player.start();
}

关于java - 我无法理解这个 MediaPlayer 错误 : MediaPlayerNative: stop called in state 0, mPlayer(0x7efba92280),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58444564/

相关文章:

android - Espresso 的 IdlingResource with Retrofit 2

android - 在 com.google.android.gms :play-services-gcm:9. 0.0 中收到任何通知之前安装后关闭应用程序时无法显示 GCM 通知

java - Log4j 日志记录性能

performance - Spark Streaming 调度延迟的恢复技术

c# - 负载下的 Ninject WebAPI.SelfHost 性能问题(每隔几秒出现几秒)

java - 如何配置aspectj忽略getter和setter

java - 有与 system.out.println 相反的吗? (java)

java - 为什么父类可能不 protected ? ( java )

java - 如何将带有 <String, Integer> 的自定义 header 添加到 Spring Boot HttpHeaders?

java - Java 中日历的字符串时间戳?