You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

应用启动失败:MediaPlayer.OnPreparedListener类型不兼容错误求助

解决MediaPlayer.OnPreparedListener类型不兼容问题

嘿,这个坑我之前踩过!报错error: incompatible types: MainActivity cannot be converted to OnPreparedListener的核心原因很直白:你的MainActivity没有实现MediaPlayer.OnPreparedListener接口,系统自然没法把this(MainActivity实例)当作OnPreparedListener对象传给setOnPreparedListener()方法。

下面是具体的解决步骤和代码示例:

步骤1:让MainActivity实现OnPreparedListener接口

在MainActivity的类声明处添加implements MediaPlayer.OnPreparedListener,别忘了导入对应的包android.media.MediaPlayer.OnPreparedListener。

步骤2:实现接口要求的抽象方法

必须重写onPrepared()方法,这个方法会在MediaPlayer准备完成后被回调,你可以在这里处理播放逻辑。

完整示例代码:

import android.media.MediaPlayer;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import java.io.IOException;

public class MainActivity extends AppCompatActivity implements MediaPlayer.OnPreparedListener {
    private MediaPlayer mPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化MediaPlayer
        mPlayer = new MediaPlayer();
        // 现在调用setOnPreparedListener(this)就不会报错了
        mPlayer.setOnPreparedListener(this);

        // 示例:设置音频/视频数据源并异步准备
        try {
            mPlayer.setDataSource("你的音频/视频文件路径或网络URL");
            mPlayer.prepareAsync(); // 异步准备,避免阻塞主线程引发ANR
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 实现OnPreparedListener的抽象方法
    @Override
    public void onPrepared(MediaPlayer mp) {
        // MediaPlayer准备完成,在这里启动播放
        mp.start();
    }

    // 重要:在Activity销毁时释放MediaPlayer资源,避免内存泄漏
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mPlayer != null) {
            mPlayer.release();
            mPlayer = null;
        }
    }
}

额外提示

  • 优先使用prepareAsync()而非同步的prepare():如果数据源是网络资源或较大的本地文件,同步准备会阻塞主线程,容易触发应用无响应(ANR)。
  • 务必在生命周期结束时释放MediaPlayer:不释放资源会导致内存泄漏,严重时可能引发应用崩溃。

内容的提问来源于stack exchange,提问作者Dedeepya.S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:36:16