Android:MediaMetadataRetriever之setDataSource(Context,Uri)
16lz
2021-01-23
这个方法参数官方给出的说法是这样的
/**
* Sets the data source as a content Uri. Call this method before
* the rest of the methods in this class. This method may be time-consuming.
*
* @param context the Context to use when resolving the Uri
* @param uri the Content URI of the data you want to play
* */
在四大组件中获取Context对象是很简单的,但是在Adapter中就无法简单的获取到Context对象,也就是说无法获取es文件夹下raw中的视频路径…..
@Override public void onBindViewHolder(final MViewHolder holder, int position) { String videoPath = videoList.get(position);// Log.d("video_info", "onBindViewHolder:视频路径检测 "+videoPath); VideoView v = holder.getVideo(); ImageView image = holder.getImageView(); v.setVideoURI(Uri.parse(videoPath));//设置路径 //设置视频首帧预览 MediaMetadataRetriever media = new MediaMetadataRetriever(); media.setDataSource(c,Uri.parse(videoPath));//设置数据源 Bitmap bitmap = media.getFrameAtTime(); Log.d(TAG, "onBindViewHolder: bitmap:"+bitmap.getByteCount()); image.setImageBitmap(bitmap); }
之前一直不理解这个Context是要传谁的上下文…我把几个控件的上下文传了进去,一直报错….
后来突然想到…可能是要传这个activity(我这里是Fragment)的上下文
于是就利用构造注入,传了进来。。。
VideoAdapter videoAdapter = new VideoAdapter(videoList,getContext());
顺利完成第一帧获取…
更多相关文章
- android工程没有gen路径
- Android实现录制视频
- Android 视频缩略图之MediaMetadataRetriever
- Android判断文件类型(视频、音频、图片等)
- Android如何获取asset目录下所有文件的路径
- 23_传智播客Android视频教程_网络通信之网络图片查看器
- android MediaPlayer SurfaceView 网络视频播放器
- 谷安: 两分钟内呈现 6 小时的 Android 游戏开发过程… [视频]
- 基于Android的淘宝网手机客户端开发见解(配完整视频教程讲解)