private void play(){ if(videoView!=null && videoView.isPlaying()){ iv_play.setImageResource(android.R.drawable.ic_media_play); videoView.pause(); return; } videoView.start(); iv_play.setImageResource(android.R.drawable.ic_media_pause); videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { iv_play.setImageResource(android.R.drawable.ic_media_play); } }); }代码解释
时间: 2024-02-14 19:08:26 浏览: 75
这段代码是一个播放器控制器的实现,主要实现了播放、暂停和视频播放完成后的回调处理。
具体来说,这段代码实现了一个play()方法,在这个方法中,首先判断当前视频是否正在播放,如果正在播放,则暂停视频播放,并修改播放按钮的图标为播放图标;否则,开始播放视频,并修改播放按钮的图标为暂停图标。
同时,还设置了一个视频播放完成的监听器,在视频播放完成后将播放按钮的图标修改为播放图标。
其中,iv_play和videoView是控件对象,android.R.drawable.ic_media_play和android.R.drawable.ic_media_pause是系统提供的播放和暂停图标资源。
相关问题
MediaController.没有isPlaying 这个方法
非常抱歉,我的回答有误。`MediaController` 没有 `isPlaying()` 方法。
要判断视频是否正在播放,可以使用 `VideoView` 的 `isPlaying()` 方法。该方法返回一个布尔值,如果视频正在播放,则返回 `true`,否则返回 `false`。
以下是一个示例代码,演示如何使用 `VideoView.isPlaying()` 方法判断视频是否正在播放:
```java
VideoView videoView = findViewById(R.id.videoView);
videoView.setVideoPath("your_video_path");
videoView.start();
// 判断视频是否正在播放
if (videoView.isPlaying()) {
// 视频正在播放
} else {
// 视频没有正在播放
}
```
请注意,`VideoView.isPlaying()` 方法只能检测到目前是否正在播放。如果视频已经播放完毕或出现错误,则该方法将返回 `false`。如果需要检测视频是否已经播放完毕,可以使用 `MediaPlayer.OnCompletionListener` 监听器。
android xyz.doikki.videoplayer.player.VideoView播放进度监听
Android 中,`xyz.doikki.videoplayer.player.VideoView` 是 Android 自带的一个视频播放组件,用于在 Android 应用中显示和播放视频。如果你想要监听视频的播放进度,VideoView 提供了一个 `setOnSeekableListener` 方法可以用来设置一个 `OnSeekableEventListener`,这个监听器会在视频播放位置发生改变时被触发。
以下是使用 VideoView 监听播放进度的基本步骤:
1. 创建 `OnSeekableEventListener` 实现类:
```java
private class MyOnSeekCompleteListener implements VideoView.OnSeekableEventListener {
@Override
public void onSeekableStart(VideoView view, int totalDuration) {
// 当视频开始播放时的回调,totalDuration 表示总时长
}
@Override
public void onSeekableProgress(VideoView view, int newPosition, int newTotalDuration) {
// 当视频播放进度变化时的回调,newPosition 是新的播放位置,newTotalDuration 是新的总时长
}
@Override
public void onSeekableEnd(VideoView view, int newTotalDuration) {
// 当视频播放结束时的回调
}
}
```
2. 初始化并设置监听器:
```java
VideoView videoView = findViewById(R.id.video_view);
MyOnSeekCompleteListener listener = new MyOnSeekCompleteListener();
videoView.setOnSeekableListener(listener);
```
现在,当视频播放状态改变时,`onSeekableProgress` 方法会被调用,你可以在这个方法里更新界面或者执行其他需要依赖当前播放进度的操作。
阅读全文