如何在android中检索Youtube视频长度?
在我的应用程序中,我有youtube视频url。现在如何从该url获取视频的持续时间 我使用了这个代码,但它不起作用。还有其他方法可以获得视频持续时间吗如何在android中检索Youtube视频长度?,android,android-youtube-api,android-video-player,Android,Android Youtube Api,Android Video Player,在我的应用程序中,我有youtube视频url。现在如何从该url获取视频的持续时间 我使用了这个代码,但它不起作用。还有其他方法可以获得视频持续时间吗 MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource("https://www.youtube.com/watch?v=" + videoID); String time = retriev
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();
如果你有一个用这个id实例化的youtube播放器,你可以从他那里得到视频持续时间
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) {
if (!wasRestored) {
youTubePlayer.loadVideo(videoID);
this.youtubePlayer=youTubePlayer;
}
}
然后你就可以做了
youtubePlayer.getDurationMillis()
获取视频的总时间。请注意,当加载视频时,它将返回0,因此您可能需要观察返回值的变化并等待它
问候,