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