在android中我有一个3分钟长的视频。我有三个按钮。 在第一个按钮点击我只想要第1分钟的视频播放。 在第二个按钮上单击从第1分钟到第2分钟视频播放 在第三个按钮上单击视频的其余部分。
点击顺序可以更改。有可能吗?
我使用了以下代码
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();
}
});
但它从给定的时间到结束播放视频。 有没有其他方法可以做到这一点。
答案 0 :(得分:0)
好的,你只需创建一个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 ;)
}
}
每次按下按钮后,execute
异步。
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
}
});
同样附加在其他按钮中。根据您的需要更改代码。希望能帮助到你。干杯。 :)