2013-08-30 9 views
5

- Ich arbeite an einem Projekt, das Video in Zeitlupe abspielen muss.Wiedergabe Video in Zeitlupe in Android

- Ich bin mir bewusst, dass Android diese Funktionalität nicht bietet.

- fand ich PVPlayer Motor und libvlc, die diese Fähigkeiten besaß, aber ich fand keinen Tutorial oder eine ordnungsgemäße Dokumentation von ihnen in dem Android-Projekt einschließlich und mit ihnen.

- Also habe ich versucht, indem Sie diese Runnable und Handler verwenden, war es das Video in Verlangsamung erfolgreich, aber sie besaßen Zuckungen während des Spielens.

public class MainActivity extends Activity { 

    VideoView vx; 
    Button mbutt; 
    Handler h ; 
    int curr = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     h = new Handler(); 

     vx = (VideoView)findViewById(R.id.videoView); 
     mbutt = (Button)findViewById(R.id.button_Play); 

     vx.setVideoPath("/mnt/sdcard/you.mp4"); 

     mbutt.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       vx.start(); 
      } 
     }); 


     Runnable r = new Runnable() { 

      @Override 
      public void run() { 

       if (vx != null) { 

        if (vx.isPlaying()){ 

         vx.pause(); 
        } 
        else{       
         vx.start(); 
        } 
       } 

       h.postDelayed(this, 50); 
      } 
     }; 

     h.postDelayed(r, 200); 






    } 


} 

- ich verschiedene Kombination von Pausenzeit und Spielzeit versucht haben, die Rucke zu entfernen, aber alles vergeblich, kann mir jemand helfen, diese Idioten bei der Beseitigung so dass es eine schöne Zeitlupe Video oder vermuten lassen, spielt eine andere einfach Bibliothek in mein Android-Projekt zu integrieren.

Vielen Dank im Voraus ......

+0

haben Sie eine Lösung gefunden? – safari

+0

Nein, ich habe noch keine Lösung gefunden .... –

+0

mhm, alles klar Ich habe ein ähnliches Problem, jetzt habe ich angefangen mit der Vitamio-Bibliothek zu arbeiten - aber es ist wirklich schwach dokumentiert. aber du könntest es versuchen – safari

Antwort

0

Wenn Sie suchen, wie VLC in Android zu eingebettet, können Sie zu this ref. und Sie können die Geschwindigkeit ändern, indem Sie setRate (0.5f) in libVLC für Zeitlupe aufrufen.

2

Ich bin spät, aber ich habe eine Lösung für API 23 und höher gefunden. Android 6.0 hinzugefügt PlaybackParams Klasse, um Wiedergabeverhalten zu steuern. -

Verwenden setPlaybackParams Methode von MediaPlayer wie unten angegeben -

videoview = (VideoView)findViewById(R.id.videoview); 
videoview.setVideoURI("Your Video URI"); 
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer mp) { 
        //works only from api 23 
        PlaybackParams myPlayBackParams = new PlaybackParams(); 
        myPlayBackParams.setSpeed(0.5f); //here set speed eg. 0.5 for slow 2 for fast mode 
        mp.setPlaybackParams(myPlayBackParams); 

        videoview.start();//start your video. 
       } 
     });