如何在android中检索Youtube视频长度?

时间:2016-10-08 08:29:50

标签: android android-youtube-api android-video-player

在我的应用程序中,我有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();

1 个答案:

答案 0 :(得分:1)

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

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

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

    }

}

然后你可以做

youtubePlayer.getDurationMillis()

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

的问候,