效果图:
实现思路:把VideoView放在RelativeLayout中,写一个ImageView覆盖VideoView,size与VideoView设置的一样,未获取到第一帧时隐藏ImageView,获取到第一帧之后显示ImageView并使用setImageBitmap方法显示第一帧。
OK,思路清楚之后开始实现:
1.xml布局:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.shushan.ui.VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="198dp"
android:layout_marginBottom="14dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="15dp"
/>
<ImageView android:id="@+id/iv_first_frame"
android:layout_width="match_parent"
android:layout_height="198dp"
android:layout_marginBottom="14dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="15dp"
android:scaleType="fitXY"
android:focusable="false"
android:clickable="false"
android:visibility="gone"
/>
</RelativeLayout>
2.获取第一帧图片bitmap,并显示在imageview上:
private void setFirstFrameDrawable(final String url){
new Thread(new Runnable() {
@Override
public void run() {
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
Log.d(TAG,"video_url = "+url);
String loadUrl;
if(ImageUtils.isAbsoluteUrl(url)){
loadUrl = url;
}else{
loadUrl = BuildConfig.imgBaseUrl+url;
}
Log.d(TAG,"loadUrl = "+loadUrl);
mmr.setDataSource(loadUrl,new HashMap<String, String>());
firstFrame = mmr.getFrameAtTime();
mHandler.sendEmptyMessage(0);
}
}).start();
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
ivFirstFrame.setVisibility(View.VISIBLE);
ivFirstFrame.setImageBitmap(firstFrame);
}
};
参数url为网络视频路径,本地视频没有试过。
OK,只要两步就可以实现效果了。
如果有更好的方法欢迎交流。
实际应用过程中遇到问题给我留言,会尽快回复。
最后推荐给一些想进大厂或者还没有拿到心仪offer的攻城狮们一本书,由大厂java面试官胡书敏编写,满满的干货,助你进到想去的公司。
博主上传资源下载链接:
本文源码:
https://download.csdn.net/download/yonghuming_jesse/10646332
环状百分比显示视图源码:
https://download.csdn.net/download/yonghuming_jesse/10677919
自制免费无广告小说阅读APP下载:
https://download.csdn.net/download/yonghuming_jesse/10390364
全屏播放视频不拉伸源码:
https://download.csdn.net/download/yonghuming_jesse/10646274
科大讯飞语音评测服务接入源码:
https://download.csdn.net/download/yonghuming_jesse/10616924
android饺子播放器使用源码:
https://download.csdn.net/download/yonghuming_jesse/10619119