在android中播放视频片段
在安卓系统中,我有一个3分钟长的视频。我有三个按钮。 在第一个按钮上单击“我只想播放第一分钟的视频”。 在第二个按钮上,仅从第1分钟到第2分钟单击视频播放 在第三个按钮上单击视频的其余部分 单击的顺序可以更改。有可能吗 我使用了下面的代码在android中播放视频片段,android,video,android-videoview,Android,Video,Android Videoview,在安卓系统中,我有一个3分钟长的视频。我有三个按钮。 在第一个按钮上单击“我只想播放第一分钟的视频”。 在第二个按钮上,仅从第1分钟到第2分钟单击视频播放 在第三个按钮上单击视频的其余部分 单击的顺序可以更改。有可能吗 我使用了下面的代码 videoPlayer = (VideoView) findViewById(R.id.videoPlayer); videoPlayer.setOnPreparedListener(this); videoPlayer.setOnCom
videoPlayer = (VideoView) findViewById(R.id.videoPlayer);
videoPlayer.setOnPreparedListener(this);
videoPlayer.setOnCompletionListener(this);
videoPlayer.setKeepScreenOn(true);
// videoPlayer.setVideoPath(root + "/" + pathToFile);
// ResourceUtil.setVideo(videoPlayer,"cbse_g08_s01_l01_t01_sc11");
videoPlayer.setVideoPath(ResourceUtil.getResourceFilePath("cbse_g08_s02_l16_t01_03a",
MSConstants.RESOURCE_TYPE_VIDEO));
leftButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("arv", "click"+"left"+videoPlayer.getDuration());
//if(videoPlayer.canSeekBackward()())
videoPlayer.seekTo(videoPlayer.getDuration());
videoPlayer.start();
}
});
midButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("arv", "click"+"mid"+videoPlayer.getCurrentPosition());
//if(videoPlayer.canSeekForward())
videoPlayer.seekTo(videoPlayer.getDuration()/5);
videoPlayer.start();
}
});
rightButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("arv", "click"+"right");
//if(videoPlayer.canSeekForward())
videoPlayer.seekTo(videoPlayer.getDuration()/10);
videoPlayer.start();
}
});
但它从给定的时间到最后播放视频。
还有别的办法吗 好的,您只需创建一个
Async
类,并在运行时处理持续时间。只要达到所需的持续时间,循环就完成,视频暂停。在这里尝试一下这段代码,它具有根据需要暂停视频的基本功能
private class Preview extends AsyncTask<Void,Void,Void> {
@Override
protected void onPreExecute(){
//handle any code if u want here
}
protected Void doInBackground(Void... params) {
//leftButton,rightButton,midButton are booleans you have to make
if(leftButton){
while(videoPlayer.getCurrentPosition() < videoPlayer.getDuration()/5 )
Log.d("!@!@","in loop1");
}
if(midButton){
while(videoPlayer.getCurrentPosition() < videoPlayer.getDuration()/10 )
Log.d("!@!@","in loop2");
}
if(rightButton){
while(videoPlayer.getCurrentPosition() < videoPlayer.getDuration() )
Log.d("!@!@","in loop3");
}
return null;
}
@Override
protected void onPostExecute(Void v) {
/**Can pause or stop the videoview/mediaplayer as per your need*/
videoPlayer.pause(); // <= this is the key ;)
}
}
类似地,附加在其他按钮中。根据需要对代码进行更改。希望能有帮助。干杯。:) 在每次播放按钮时…需要一些暂停(我想是加载时间)来播放。如何删除此播放暂停。
leftButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("arv", "click"+"left"+videoPlayer.getDuration());
//if(videoPlayer.canSeekBackward()())
videoPlayer.seekTo(videoPlayer.getDuration());
videoPlayer.start();
leftButton=true; // <= boolean to be set
new Preview().execute(); // <= start Async
}
});