android: onSeekCompleteListener 与 VideoView [英] android: onSeekCompleteListener with VideoView
问题描述
我正在使用 VideoView 播放视频文件.我正在使用 seekTo 功能以便从它被停止的地方播放视频.但是,我想在搜索操作完成后做一些操作.为此,我需要使用 onSeekCompleteListener;但是,VideoView 不支持 onSeekCompleteListener;它可以与 MediaPlayer 一起使用.我的问题是有什么方法可以在 VideoView 中使用 onSeekCompleteListener"?
I am using VideoView to play video files. I am using seekTo function in order to play the video from where it has been left off. However, I wanted to do some operations when the seek operation is finished. For that I need to use onSeekCompleteListener; however, onSeekCompleteListener is not supported with VideoView; it can be used with MediaPlayer. My Question is that "is there any way by which I can use onSeekCompleteListener" with VideoView?
非常感谢
推荐答案
public class ObservableVideoView extends VideoView
{
private IVideoViewActionListener mVideoViewListener;
private boolean mIsOnPauseMode = false;
public interface IVideoViewActionListener
{
void onPause();
void onResume();
void onTimeBarSeekChanged(int currentTime);
}
public void setVideoViewListener(IVideoViewActionListener listener)
{
mVideoViewListener = listener;
}
@Override
public void pause()
{
super.pause();
if (mVideoViewListener != null)
{
mVideoViewListener.onPause();
}
mIsOnPauseMode = true;
}
@Override
public void start()
{
super.start();
if (mIsOnPauseMode)
{
if (mVideoViewListener != null)
{
mVideoViewListener.onResume();
}
mIsOnPauseMode = false;
}
}
@Override
public void seekTo(int msec)
{
super.seekTo(msec);
if (mVideoViewListener != null)
{
mVideoViewListener.onTimeBarSeekChanged(msec);
}
}
public ObservableVideoView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public ObservableVideoView(Context context)
{
super(context);
}
public ObservableVideoView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
}
你可以监听这样的事件:
you can listen for events like this:
public class VideoPlayerActivity extends Activity
{
public static final String VIDEO_URL = "VideoUrl";
private String path = "";
private ObservableVideoView mVideoView;
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.video_player_activity_layout);
mVideoView = (ObservableVideoView) findViewById(R.id.videoView1);
mVideoView.setMediaController(new MediaController(this));
mVideoView.setVideoViewListener(mVideoViewListener);
path = getIntent().getStringExtra(VIDEO_URL);
if (path == "")
{
Toast.makeText(this, "Please edit VideoViewDemo Activity, and set path" + " variable to your media file URL/path", Toast.LENGTH_LONG)
.show();
}
else
{
mVideoView.setVideoPath(path);
mVideoView.requestFocus();
mVideoView.start();
}
}
private IVideoViewActionListener mVideoViewListener = new IVideoViewActionListener()
{
@Override
public void onTimeBarSeekChanged(int currentTime)
{
//TODO what you want
}
@Override
public void onResume()
{
//TODO what you want
}
@Override
public void onPause()
{
//TODO what you want
}
};
}
这篇关于android: onSeekCompleteListener 与 VideoView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!