gpt4 book ai didi

android - 将缩略图设置为 VideoView 的 Intent

转载 作者:行者123 更新时间:2023-11-30 00:11:20 25 4
gpt4 key购买 nike

我必须在我的 Android 屏幕之一中播放视频,并且我正在使用 Video View Intent 进行相同的操作。视频已播放,但启动屏幕上没有出现缩略图。

我的代码是这样的

@OnClick(R.id.icon_play)
protected void playVideo(){
String videoUrl="https://someUrl/Video/v07.mp4";
if(!videoUrl.isEmpty()) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(videoUrl));
intent.setDataAndType(Uri.parse(videoUrl), "video/mp4");
startActivity(intent);
}

}

缩略图是指当屏幕启动时,每个视频都应该有自己的图像。 (类似于 YouTube)

我尝试使用 seekTo() 来附加缩略图,但没有成功。请帮忙。谢谢。

最佳答案

我使用 MediaMetaDataRetriever 解决了这个问题。

代码是这样的-

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(-1,MediaMetadataRetriever.OPTION_CLOSEST);
}
catch (Exception e)
{
e.printStackTrace();
throw new Throwable(
"Exception in retriveVideoFrameFromVideo(String videoPath)"
+ e.getMessage());

}
finally
{
if (mediaMetadataRetriever != null)
{
mediaMetadataRetriever.release();
}
}
return bitmap;
}

请注意:因为我的视频链接是服务器 URL 的形式,所以当视频 Url 通过它时,createThumnailUtils 返回 null。

当视频来自本地存储时,以下代码可以正常工作。

Bitmap thumbnail = ThumbnailUtils.createVideoThumbnail("URL", MediaStore.Images.Thumbnails.MINI_KIND);

BitmapDrawable bitmapD = new BitmapDrawable(thumbnail);
VideoView.setBackground(Drawable bitmapD);

希望这对某人有帮助!

关于android - 将缩略图设置为 VideoView 的 Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com