【发布时间】:2013-04-28 04:16:42
【问题描述】:
我正在 Android 中制作媒体播放器。我需要一个代码才能在不使用视频视图的情况下获取视频长度。
我在堆栈溢出中看到了许多页面,但曾经有一个页面用于显示如何在视频视图中获取视频的长度,但我需要没有视频视图。
【问题讨论】:
标签: android
我正在 Android 中制作媒体播放器。我需要一个代码才能在不使用视频视图的情况下获取视频长度。
我在堆栈溢出中看到了许多页面,但曾经有一个页面用于显示如何在视频视图中获取视频的长度,但我需要没有视频视图。
【问题讨论】:
标签: android
您可以使用MediaMetadataRetriever 获取此类信息。此类旨在供希望获取有关媒体的特定信息而无需使用 MediaPlayer 的用户使用。
这是一个如何使用它的示例:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(your_data_source);
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);
【讨论】:
MediaMetadataRetriever 类只存在于 API10+ 上。
MediaMetadataRetriever 导致框架实际解析媒体以获取特殊的标头或元数据帧,所以我相信这可能需要一些时间,尤其是在它获取远程媒体的情况下。