Я успешно воспроизвел видео с помощью MediaPlayer на TextureView, сейчас я пытаюсь запрограммировать его так, чтобы видео автоматически изменялось после прохождения определенного кадра. Однако после выполнения определенного условия я не могу обновить видео. Он застрял на первом видео (последний кадр перед выполнением условия).
Как загрузить новое видео и начать воспроизведение после того, как первое видео прошло определенный кадр? Вот что у меня есть, я использую CountDownTimer для получения наиболее точного текущего времени.
public class PreviewVideo extends AppCompatActivity implements TextureView.SurfaceTextureListener {
TextureView textureView;
MediaPlayer videoMedia;
Boolean pastFrame=false;
int currentTime;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview_video);
textureView = (TextureView) findViewById(R.id.previewVideo);
textureView.setSurfaceTextureListener(this);
}
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
surf=new Surface(surface);
videoMedia=new MediaPlayer();
videoMedia.setSurface(surf);
try{
if (!pastFrame){
videoMedia.setDataSource(this,firstUri);
}
else {
videoMedia.setDataSource(this,secondUri);
}
videoMedia.prepare();
playListeners();
} catch(IOException e){e.printStackTrace(); }
}
private void playListeners() {
count=new CountDownTimer(videoMedia.getDuration()*10, 1){
@Override
public void onTick(long l)
{
currentTime=videoMedia.getCurrentPosition();
if (currentTime>=setFrame && pastFrame==false){
textureView.setSurfaceTextureListener(this);//Do I call this again??
pastFrame=true;
}
@Override
public void onFinish(){
}
}.start();
}
}