2016-10-08 29 views
0

在我的应用程序中我有youtube视频网址。现在我怎样才能从该网址获得视频的持续时间?如何在android中检索Youtube视频长度?

我用这个代码,但它不起作用。任何其他方式来获得视频持续时间?

MediaMetadataRetriever retriever = new MediaMetadataRetriever(); 
     retriever.setDataSource("https://www.youtube.com/watch?v=" + videoID); 
     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); 
     Toast.makeText(this, "https://www.youtube.com/watch?v=" + videoID + "\n" + hours + " : " + minutes + " : " + seconds, Toast.LENGTH_SHORT).show(); 

回答

0

如果你有一个用这个ID实例化的youtube播放器,你可以从他那里获得视频持续时间。

@Override 
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) { 

    if (!wasRestored) { 
     youTubePlayer.loadVideo(videoID); 
     this.youtubePlayer=youTubePlayer; 

    } 

} 

,然后你可以做

youtubePlayer.getDurationMillis() 

获得总视频的时间。请注意,视频加载时它将返回0,因此您可能需要观察返回值的演变并等待它。

关于,

相关问题