我想獲得視頻持續時間,因爲我正在創建我的自定義媒體控制器。當我使用默認mediacontroller似乎沒有問題,因爲它顯示所有details.I要創建我自己的mediacontroller只在我的應用程序中添加一些圖形。 我無法使用以下任何代碼獲取在線視頻的總時長。 有些高手請幫忙。安卓視頻顯示總持續時間沒有使用媒體控制器
mVideoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
long duration1 = mp.getDuration();
Log.d("DURATION of media player", duration1+"");
Log.d("Videoview duration", mVideoView.getDuration()+"");
int msec = MediaPlayer.create(getApplicationContext(),video).getDuration();
Log.d("Duration of msec", msec+"");
try{
//this block not working ... why???
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
//video = uri.parse(String myurl)
retriever.setDataSource(getApplicationContext(),video);
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long timeInmillisec = Long.parseLong(time);
long duration = timeInmillisec/1000;
long hours = duration/3600;
long minutes = (duration - hours * 3600)/60;
long seconds = duration - (hours * 3600 + minutes * 60);
finalTime = timeInmillisec;
Log.d("HH:MM:SS", hours+":"+minutes+":"+seconds+"");
}catch(IllegalArgumentException e){
Log.d(TAG, "media meta retriever error");
e.printStackTrace();
Log.d(TAG, e.getMessage()+"");
}
我最後一次嘗試總是返回非法參數異常雖然URL是正確播放,甚至使用VLC媒體播放器 我試圖爲它提供如
retriever.setDataSource (String path)
retriever.setDataSource (Context context, Uri uri)
你能指點我來學習android studio 2.2項目嗎?我想創建一個自定義媒體控制器以及。謝謝 – user1788736 2017-11-27 01:07:21
檢查鏈接,你會發現那裏的示例項目 https://github.com/brightec/ExampleMediaController – 2018-02-23 07:44:57