在我的应用程序中,我有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 :(得分: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,因此您可能需要观察返回值的演变并等待它。
的问候,