2014-09-04 42 views
4

我有一個在我自己的android應用程序尋求問題。 當我轉發我的rtmp視頻(MP4源),然後VLC stucks和60-120秒後播放良好。LibVLC android尋求並轉發

我的設備是armv7 android電視機頂盒。

 // Create a new media player 
     libvlc = LibVLC.getInstance(); 
     libvlc.setHardwareAcceleration(LibVLC.HW_ACCELERATION_FULL); 
     //libvlc.setSubtitlesEncoding(""); 
     //libvlc.setAout(LibVLC.VOUT_ANDROID_SURFACE); 
     //libvlc.setTimeStretching(false); 
     //libvlc.setFrameSkip(true); 

     libvlc.setSubtitlesEncoding(""); 
     libvlc.setTimeStretching(false); 
     libvlc.setFrameSkip(true); 
     libvlc.setChroma("RV32"); 
     libvlc.setVerboseMode(true); 
     libvlc.setAout(-1); 
     libvlc.setDeblocking(4); 
     libvlc.setNetworkCaching(0); 



     //libvlc.setChroma("RV32"); 
     //libvlc.setVerboseMode(false); 
     //libvlc.setDeblocking(1); 
     //libvlc.setNetworkCaching(2500); 
     LibVLC.restart(this); 
     EventHandler.getInstance().addHandler(mHandler); 
     holder.setFormat(PixelFormat.RGBX_8888); 
     holder.setKeepScreenOn(true); 
     MediaList list = libvlc.getMediaList(); 
     list.clear(); 
     list.add(new Media(libvlc, LibVLC.PathToURI(media)), false); 
     libvlc.playIndex(0); 

在其他播放器如MXPlayer上沒有問題。 Vitamio工作良好,但音頻同步存在問題。 沒有對VLC尋求視頻作品好,下面是我進和快退操作:

switch (event.getKeyCode()) { 

     // next 
     case 87: 

      s = false; 

      if (length > 0L) { 
       Long t = time+60000L; 
       if (t < length) { 
        //libvlc.clearBuffer(); 
        libvlc.setTime(time+60000L); 
        libvlc.play(); 
       } 
      } 

      break; 
     // prev 
     case 88: 

      s = false; 

      if (length > 0L) { 
       Long t = time-60000L; 
       if (t > 0) { 
        libvlc.setTime(time-60000L); 
        libvlc.play(); 
       } 
      } 

      break; 
    } 
+0

我也有這個相同的問題。任何解決方案呢? – 2015-02-11 10:06:40

+0

仍然沒有解決方案,我使用編譯的ffmeg或Vitamio插件,但vitamio工作不正常。還有視頻口吃問題。尋求在VLC仍然無法正常工作。 – ppoeas 2015-02-12 11:00:29

+0

我在尋找rtmp流時也有問題使用vlc。請參閱[vlc play rtmp stream並且不支持seek](http://stackoverflow.com/questions/43670832/vlc-play-rtmp-stream-and-cannot-support-seek) – Charein 2017-04-28 02:18:30

回答

0

我不明白你的問題,但如果這還能夠設置時MedaiPlayer玩的不是導引頭的位置,然後調用setPosition兩種同時玩的伎倆:

 if(!isPlaying){ 
      mp.play();//otherwise not seekable for some silly reason 
      mp.setTime((long)pos); 
      mp.pause(); 
     }else{ 
      mp.setTime((long)pos); 
     } 

mp是MediaPlayer,當然。 因爲getLength()具有相同的問題,所以它真的很煩人的iso一個很好的文檔和教程!