Android MediaPlayer是Android平台上用于播放音频和视频文件的类。当我们使用MediaPlayer播放音视频时,有时候我们需要在音视频播放完成后进行一些特定的操作。这时就可以使用MediaPlayer的onCompletion监听器。
在Android中,MediaPlayer类提供了一个onCompletionListener接口,用于监听MediaPlayer播放完成的事件。当MediaPlayer播放完成时,onCompletion方法将被调用。我们可以在onCompletion方法中编写我们需要执行的代码,比如播放下一首音乐、显示播放完成的提示等。
下面是一个使用MediaPlayer的onCompletionListener的示例代码:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("
mediaPlayer.prepare();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// 在这里编写播放完成后需要执行的代码
Toast.makeText(MainActivity.this, "播放完成", Toast.LENGTH_SHORT).show();
}
});
mediaPlayer.start();
在上面的示例代码中,我们创建了一个MediaPlayer对象,并设置了音频源。然后调用prepare方法准备MediaPlayer进行播放。接下来,我们通过调用setOnCompletionListener方法设置了一个onCompletionListener,当MediaPlayer播放完成时,onCompletion方法将被调用。在onCompletion方法中,我们显示了一个Toast提示播放完成。
除了使用匿名内部类,我们还可以使用lambda表达式来简化代码:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("
mediaPlayer.prepare();
mediaPlayer.setOnCompletionListener(mp -> {
// 在这里编写播放完成后需要执行的代码
Toast.makeText(MainActivity.this, "播放完成", Toast.LENGTH_SHORT).show();
});
mediaPlayer.start();
流程图如下:
flowchart TD
A(创建MediaPlayer对象) --> B(设置音频源)
B --> C(准备播放)
C --> D(设置onCompletionListener)
D --> E(播放音频)
E --> F(监听播放完成事件)
F --> G(执行特定操作)
序列图如下:
sequenceDiagram
participant A as 用户
participant B as 应用程序
participant C as MediaPlayer
A->>B: 点击播放按钮
B->>C: 创建MediaPlayer对象
C->>C: 设置音频源
C->>C: 准备播放
C->>C: 设置onCompletionListener
C->>C: 播放音频
C-->>B: 播放完成
B->>B: 执行特定操作
B-->>A: 播放完成提示
以上是使用Android MediaPlayer的onCompletionListener的示例代码和相关说明。通过使用onCompletionListener,我们可以在音视频播放完成后实现一些特定的操作,增强用户体验。在实际开发中,我们可以根据具体需求来使用onCompletionListener,定制自己的播放完成后的逻辑。