2017-04-24 67 views
0

我被自己創建一個控制器,一個VideoView(我知道這是更容易使用Controller,但它是一所學校的功課),因此應用程序的外觀如下(帶有SeekBar一個VideoView和3 Buttons的Android VideoView與持續時間-1

onCreate方法我已經寫了這個代碼

VideoView vwVideo = (VideoView) findViewById(R.id.videoView); 
vwVideo.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.baby); 

SeekBar skbPosition = (SeekBar) findViewById(R.id.seekBarVideo); 
skbPosition.setMax(vwVideo.getDuration()); 

getDuration()換貨政... rns -1,也許是因爲視頻還沒有加載(* .mp4,4.47 MB​​,00:01:44),所以我決定設置最大值SeekBar當點擊按鈕「播放」,但我不知道這是否是解決問題的最佳方法。

有沒有更好的解決方案?

回答

1

如果您想獲得視頻的持續時間,您可以使用MediaMetadataRetriever完成此操作。

MediaMetadataRetriever retriever = new MediaMetadataRetriever(); 
//use setDataSource() functions to set your data source 
retriever.setDataSource(context, Uri.fromFile(videoFile)); 
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); 
long timeInMillisec = Long.parseLong(time); 

如果有任何問題,請更新我。