我需要检测VideoView暂停的时间,因此我可以在屏幕上隐藏一些UI元素。 VideoView没有通知您暂停事件的机制。我该怎么做?
答案 0 :(得分:0)
我还没有看到一个很好的答案(这么多人使用线程)。这是我的:
import android.content.Context;
import android.util.AttributeSet;
import android.widget.VideoView;
public class PlayStateBroadcastingVideoView extends VideoView{
public interface PlayPauseListener {
void onPlay();
void onPause();
}
private PlayPauseListener mListener;
public PlayStateBroadcastingVideoView(Context context) {
super(context);
}
public PlayStateBroadcastingVideoView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public PlayStateBroadcastingVideoView(Context context, AttributeSet attrs, int theme) {
super(context, attrs, theme);
}
@Override
public void pause() {
super.pause();
if(mListener != null) {
mListener.onPause();
}
}
@Override
public void start() {
super.start();
if(mListener != null) {
mListener.onPlay();
}
}
public void setPlayPauseListener(PlayPauseListener listener) {
mListener = listener;
}
}
它的工作原理是因为潜入代码(至少从5.0开始),将其置于暂停状态的唯一功能是暂停,并且唯一一个将其置于播放状态的功能就是启动。所以我们只是挂钩这些来通过听众通知我们。然后在布局中使用此类代替VideoView。