我正在尝试在播放视频时复制Google的照片应用的演示方法。即,来自视频的帧首先呈现为Bitmap
,然后在点击播放按钮时,视频重新调整为全屏并播放。
以下是我从视频中获取一个框架以显示为Bitmap
:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
mImageView = (ImageView) v.findViewById(R.id.fragmentImageView);
retriever.setDataSource(videoPath);
mImageView.setImageBitmap(retriever.getFrameAtTime());
以下是我用来显示ImageView
的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/fragmentImageView"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/black">
</ImageView>
</RelativeLayout>
我也使用此布局显示用相机拍摄的照片。当它显示摄像机图片时,此布局看起来与照片应用程序相同:图像占据屏幕的整个宽度,顶部和底部都有黑条。
但是,当我使用此布局显示视频帧时,图像占据屏幕的整个高度,并且右侧有一个白色条。
如何缩放Bitmap
返回的getFrameAtTime()
以适应所需的布局,而不会扭曲?
我感谢任何建议或例子。谢谢!