2011-11-01 31 views
6

Tôi gặp sự cố khi tôi muốn có tổng thời lượng video đang chạy trong Chế độ xem video cho điều này Tôi đang sử dụng phương thức xem video getDuration nhưng nó luôn trả về -1 khi tôi so sánh nó với currentPosition. Trên thực tế tôi muốn rằng nếu hiện tại của video bằng với tổng chiều dài của video thì nó sẽ bắt đầu từ vị trí thứ 0 có nghĩa là bắt đầu. Có nghĩa là tôi muốn nói rằng tôi muốn so sánh vị trí video hiện tại với tổng thời lượng của video, làm thế nào tôi có thể làm điều đó?cách nhận tổng thời lượng video trong chế độ xem video trong android

Xin cảm ơn trước.

Code:

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

bài viết của bạn mã ở đây để chúng tôi biết vấn đề là gì – androidnoob

+0

Xem lại Tôi đã chỉnh sửa câu hỏi với mã số –

Trả lời

-3

Tại sao bạn đang sử dụng LOCATION_SERVICE để có được những vị trí video? LOCATION_SERVICE có nghĩa là xác định vị trí của thiết bị. Tham khảo link này.

+0

vị trí Serv băng không phải là để có được vị trí video, nó không phải là mối quan tâm của bạn –

+3

Trong trường hợp đó, sau đó không đặt dòng mã trong đó. Nó rất gây hiểu nhầm – androidnoob

13

Để có tổng chiều dài của mã sử dụng video:

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

Điều này phù hợp với tôi. – AlexAndro

+0

Hãy coi chừng điều này đôi khi trả về ms và đôi khi Seconds – htafoya

+0

@htafoya là bạn nghiêm túc? Đó sẽ là một trò đùa, nó không phải là có thể – kolboc

6

Để có được chiều dài của video sử dụng mã dưới đây

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

Bạn có thể sử dụng mã dưới đây:

int duration = MediaPlayer.create(context, Uri.fromFile(new File(video_path))).getDuration(); 
Các vấn đề liên quan