2017-08-07 4 views
-1

Je voudrais lire une vidéo avec un VideoView en mode plein écran dans Android 5.1. De plus, je voudrais arrêter la vidéo (et changer l'activité) après un certain temps (disons 5min). Comment puis-je y parvenir? Ma mise en page est la suivante:Arrêt de la vidéo Android après un certain temps

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    android:id="@+id/LinearLayout01" 
    android:layout_height="fill_parent"  
    android:paddingLeft="2px" 
    android:paddingRight="2px" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:paddingTop="2px" 
    android:paddingBottom="2px" 
    android:layout_width="fill_parent" 
    android:orientation="vertical"> 

     <VideoView 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:id="@+id/VideoView" /> 

</LinearLayout> 

Et le code suivant:

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.VideoView; 

public class VideoViewDemo extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     VideoView videoView = (VideoView)findViewById(R.id.VideoView); 

     videoView.setVideoPath("/sdcard/test.mp4"); 

     videoView.start(); 
    } 
} 
+0

double possible de [Comment appeler une méthode après un retard dans Android] (https://stackoverflow.com/questions/3072173/how-to-call-a-method-after-a-delay-in-android) – 0X0nosugar

Répondre

1

Vous devez utiliser un « MediaPlayer », puis faire une « Runnable » pour arrêter la vidéo à 5m. Puis, avec un gestionnaire que vous appelez votre Runnable avec la méthode » .postDelayed) comme ceci:

public class VideoViewDemo extends Activity { 

     MediaPlayer mp; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      setContentView(R.layout.main); 

      mp = MediaPlayer.create(this, "video"); 
      mp.start(); 

      Handler handler = new Handler(); 
      handler.postDelayed(stopPlayerTask, 500000); 
     } 

     Runnable stopPlayerTask = new Runnable(){ 
      @Override 
      public void run() { 
       mp.pause(); 
      }}; 
} 

Vous devez adapter cet exemple;)