Java 如何在Android中从URL获取详细视频信息
我正在寻找从Android中的URL获取详细视频信息(如持续时间、视频缩略图…)的解决方案?尝试从URL获取视频缩略图Java 如何在Android中从URL获取详细视频信息,java,android,url,video,Java,Android,Url,Video,我正在寻找从Android中的URL获取详细视频信息(如持续时间、视频缩略图…)的解决方案?尝试从URL获取视频缩略图 public static Bitmap retriveVideoFrameFromVideo(String videoPath) throws Throwable { Bitmap bitmap = null; MediaMetadataRetriever mediaMetadataRetriever = null; try {
public static Bitmap retriveVideoFrameFromVideo(String videoPath)
throws Throwable
{
Bitmap bitmap = null;
MediaMetadataRetriever mediaMetadataRetriever = null;
try
{
mediaMetadataRetriever = new MediaMetadataRetriever();
if (Build.VERSION.SDK_INT >= 14)
mediaMetadataRetriever.setDataSource(videoPath, new HashMap<String, String>());
else
mediaMetadataRetriever.setDataSource(videoPath);
// mediaMetadataRetriever.setDataSource(videoPath);
bitmap = mediaMetadataRetriever.getFrameAtTime();
}
catch (Exception e)
{
e.printStackTrace();
throw new Throwable(
"Exception in retriveVideoFrameFromVideo(String videoPath)"
+ e.getMessage());
}
finally
{
if (mediaMetadataRetriever != null)
{
mediaMetadataRetriever.release();
}
}
return bitmap;
}
公共静态位图从视频检索视频帧(字符串视频路径)
扔掉的
{
位图=空;
MediaMetadataRetriever MediaMetadataRetriever=null;
尝试
{
mediaMetadataRetriever=新的mediaMetadataRetriever();
如果(Build.VERSION.SDK_INT>=14)
setDataSource(videoPath,newhashmap());
其他的
mediaMetadataRetriever.setDataSource(videoPath);
//mediaMetadataRetriever.setDataSource(videoPath);
位图=mediaMetadataRetriever.getFrameAtTime();
}
捕获(例外e)
{
e、 printStackTrace();
扔新的一次性垃圾(
“RetrieveVideoFrameFromVideo(字符串视频路径)中出现异常”
+e.getMessage());
}
最后
{
if(mediaMetadataRetriever!=null)
{
mediaMetadataRetriever.release();
}
}
返回位图;
}
这要归功于您在StackOverflow上提出了两个不同的问题 要检索视频持续时间和其他元数据,请参阅 也许你在找 FFmpegMediaMetadataRetriever类为从输入媒体文件检索帧和元数据提供了统一接口 通过使用元数据键持续时间 FFmpegMediaMetadataRetriever您可以获取视频的持续时间。它会将字符串返回给您,然后您可以将其转换为 好久不见了 以下是您应该使用的代码:
FFmpegMediaMetadataRetriever mFFmpegMediaMetadataRetriever = new MediaMetadataRetriever();
mFFmpegMediaMetadataRetriever.setDataSource("Your video url");
String mVideoDuration = mFFmpegMediaMetadataRetriever .extractMetadata(FFmpegMediaMetadataRetriever .METADATA_KEY_DURATION);
long mTimeInMilliseconds= Long.parseLong(mVideoDuration);
如果以上仍然不起作用,则使用
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
if (Build.VERSION.SDK_INT >= 14)
retriever.setDataSource("Your video url", new HashMap<String, String>());
else
retriever.setDataSource("Your video url");
MediaMetadataRetriever retriever=新的MediaMetadataRetriever();
如果(Build.VERSION.SDK_INT>=14)
setDataSource(“您的视频url”,new HashMap());
其他的
setDataSource(“您的视频url”);
要下载缩略图,请参阅
无需下载视频,即可从以下代码生成缩略图:
public static Bitmap retriveVideoFrameFromVideo(String videoPath) throws Throwable
{
Bitmap bitmap = null;
MediaMetadataRetriever mediaMetadataRetriever = null;
try
{
mediaMetadataRetriever = new MediaMetadataRetriever();
if (Build.VERSION.SDK_INT >= 14)
mediaMetadataRetriever.setDataSource(videoPath, new HashMap<String, String>());
else
mediaMetadataRetriever.setDataSource(videoPath);
// mediaMetadataRetriever.setDataSource(videoPath);
bitmap = mediaMetadataRetriever.getFrameAtTime();
} catch (Exception e) {
e.printStackTrace();
throw new Throwable("Exception in retriveVideoFrameFromVideo(String videoPath)" + e.getMessage());
} finally {
if (mediaMetadataRetriever != null) {
mediaMetadataRetriever.release();
}
}
return bitmap;
}
公共静态位图检索VideoFrameFromVideo(字符串视频路径)抛出可丢弃
{
位图=空;
MediaMetadataRetriever MediaMetadataRetriever=null;
尝试
{
mediaMetadataRetriever=新的mediaMetadataRetriever();
如果(Build.VERSION.SDK_INT>=14)
setDataSource(videoPath,newhashmap());
其他的
mediaMetadataRetriever.setDataSource(videoPath);
//mediaMetadataRetriever.setDataSource(videoPath);
位图=mediaMetadataRetriever.getFrameAtTime();
}捕获(例外e){
e、 printStackTrace();
抛出新的Throwable(“RetrieveVideoFrameFromVideo(String videoPath)中的异常)”+e.getMessage();
}最后{
if(mediaMetadataRetriever!=null){
mediaMetadataRetriever.release();
}
}
返回位图;
}
这两个答案都是针对Android的,不需要下载整个视频。只有在视频视图中加载URL,或者您可以从获取URL的服务器接收此信息时,才能获取此信息。您的答案(如何从URL获取视频缩略图)出现此错误(状态=0x8000000)。为什么?我正在尝试显示youtube上的视频缩略图。@TarasStavnychyi从视频和youtube这样的视频服务中获取缩略图是非常不同的。但是,由于此代码支持MP4,因此可以使用此代码将Youtube URL转换为MP4 URL。