2011-11-01 112 views
6

我有一個問題,我想獲得視頻視圖中運行的視頻的總長度,因爲我使用的是視頻視圖的getDuration方法,但它總是返回-1當我將它與currentPosition進行比較時。其實我希望如果視頻的當前位置等於視頻的總長度,那麼它應該從第0個位置開始意味着開始。意思是我想說我想比較視頻當前位置和視頻的總長度,我該怎麼做?如何在視頻視圖中獲取視頻的總長度android

在此先感謝。

代碼:

videoPosition=VideoPositionFinding(IDValue,video.getDuration()); 
    video.seekTo(videoPosition); 
    if(video.getCurrentPosition()==video.getDuration()){ 
     videoPosition=0; 
    } 
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    System.out.println("The Video Duration: "+video.getCurrentPosition()); 

    video.start(); 
+0

發表您的代碼在這裏,以便我們知道什麼是問題 – androidnoob

+0

請參見我已經編輯了代碼 –

回答

-3

你爲什麼要使用LOCATION_SERVICE獲得視頻位置()? LOCATION_SERVICE用於查明設備的位置。請參閱此link

+0

位置Serv冰不是爲了獲得視頻位置,這不是你的擔心 –

+3

在這種情況下,那麼不要把那行代碼放在那裏。這很容易讓人誤解 – androidnoob

13

要獲得視頻使用代碼總長度:

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) {       
       long duration = videoView.getDuration(); 
      } 
     }); 
+0

這對我很有用。 – AlexAndro

+0

小心這有時會返回毫秒,有時Seconds – htafoya

+0

@htafoya你是認真的嗎?這將是一個笑話,這是不可能的 – kolboc

6

要獲取視頻的長度使用下面的代碼

myVideoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 
      // TODO Auto-generated method stub 
      int duration=mp.getDuration()/1000; 
      int hours = duration/3600; 
      int minutes = (duration/60) - (hours * 60); 
      int seconds = duration - (hours * 3600) - (minutes * 60) ; 
      String formatted = String.format("%d:%02d:%02d", hours, minutes, seconds); 
      Toast.makeText(getApplicationContext(), "duration is " + formatted , Toast.LENGTH_LONG).show(); 
     } 
    }); 
0

您可以使用下面的代碼:

int duration = MediaPlayer.create(context, Uri.fromFile(new File(video_path))).getDuration(); 
相關問題