在 Android 中,MediaPlayer 是一个用于播放音频和视频的多媒体播放器类。以下是使用 MediaPlayer 播放音频和视频的基本步骤:

1. 播放音频:
   - 在你的 Activity 或 Fragment 中,首先创建 MediaPlayer 对象并设置数据源,然后准备、开始播放。
    MediaPlayer mediaPlayer = new MediaPlayer();

    try {
        // 设置音频数据源,可以是本地文件、网络资源等
        mediaPlayer.setDataSource("path/to/your/audio/file.mp3");

        // 准备音频(异步操作)
        mediaPlayer.prepareAsync();

        // 设置准备完成监听器
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                // 准备完成后开始播放
                mediaPlayer.start();
            }
        });

    } catch (IOException e) {
        e.printStackTrace();
    }

   - 上述代码中,你需要替换 setDataSource 中的路径为你的音频文件路径。prepareAsync 是异步操作,需要设置准备完成监听器。

2. 播放视频:
   - 播放视频与播放音频类似,但需要将 MediaPlayer 绑定到一个 SurfaceView 上以显示视频。
    MediaPlayer mediaPlayer = new MediaPlayer();

    try {
        // 设置视频数据源,可以是本地文件、网络资源等
        mediaPlayer.setDataSource("path/to/your/video/file.mp4");

        // 将MediaPlayer与SurfaceView关联
        SurfaceView surfaceView = findViewById(R.id.surfaceView);
        SurfaceHolder surfaceHolder = surfaceView.getHolder();
        mediaPlayer.setDisplay(surfaceHolder);

        // 准备视频(异步操作)
        mediaPlayer.prepareAsync();

        // 设置准备完成监听器
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                // 准备完成后开始播放
                mediaPlayer.start();
            }
        });

    } catch (IOException e) {
        e.printStackTrace();
    }

   - 在布局文件中,需要添加一个 SurfaceView 控件用于视频的显示。
    <SurfaceView
        android:id="@+id/surfaceView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

3. 监听播放完成事件:
   - 如果你想在音频或视频播放完成后执行一些操作,可以设置播放完成监听器。
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            // 播放完成后执行的操作
        }
    });

4. 释放资源:
   - 在 onDestroy 方法中释放 MediaPlayer 占用的资源。
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer != null) {
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }

这是一个简单的使用 MediaPlayer 播放音频和视频的例子。请注意,为了避免内存泄漏,确保在适当的时机释放 MediaPlayer 对象。


转载请注明出处:http://www.zyzy.cn/article/detail/15237/Android