Rom开发 视频播放器开发
来源:互联网 发布:淘宝网如何找同款 编辑:程序博客网 时间:2024/05/16 17:56
1、视频缩略图的获取
通过系统接口读取视频缩略图有以下两个尺寸
* MINI_KIND: 512 x 384 thumbnail
* MICRO_KIND: 96 x 96 thumbnail
Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(mContext.getContentResolver(), id,TASK_GROUP_ID,
MediaStore.Video.Thumbnails.MINI_KIND,null);
原生视频应用获取的缩略图是96*96尺寸,若自定义列表视频显示缩略图可以获取512*384尺寸,获取到之后再做相应的裁剪处理得到适当的尺寸。
2、视频媒体数据库的刷新
使用递归查询SD卡文件夹中的视频文件,然后逐个发送扫描广播的方法不合理,在4.2平台上面,可以采用发送Intent.ACTION_MEDIA_MOUNTED广播的方式,这样可以扫描整个SD卡。
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
但在4.4平台上面不能采用发送广播的方式,而是直接调用MediaScannerConnection.scanFile(context,,new String[]{ file_path},null,null);函数扫描特制定的路径;
3、视频截屏
01、初始视频截屏实现是通过查询视屏文件在SD卡中的绝对文件路径,设置到MediaMetadataRetriever中,之后调用其getFrameAtTime()函数来获取在特定时间点的视频帧图像,但是这种方式不适用于所有情况,当录制的视频是信息中要发送的附件时,此时所录制的视频并未存在在SD卡中,数据库也没此视频文件的任何数据,所以在查询数据库获取视频文件绝对路径的值为空,导致截屏失败。因MediaMetadataRetriever.setDataSource()有多种参数可设置,后续直接采用MovieItem的视频Uri参数(mMovieItem.getOriginalUri())作为抽取视频特定时间帧图像的数据源。
02、实际截屏的处理在MeituVideoUtils.getVideoScreenshot(Context pContext, Uri pUri, long pTime)中,这边需要注意的是截屏的时间点,是以微秒为单位,截屏的时候获取到的视频播放时间点(毫秒)需要在抽取Bitmap的时候再转化为微秒(bitmap = retriever.getFrameAtTime(pTime * 1000))。
03、另外一个需要注意的地方是,当从文件管理器中进入视频播放界面,当前所播放视频的Uri是以"file:///"开头的,所以需要对当前视频的Uri做一个转化处理(VideoUtils.constructUriFromFile(Context pContext, Uri pUri)),方便后面的数据使用。
4、播放界面ActionBar样式
播放界面头部栏的半透明背景是调用Actionbar的setBackgroundDrawable()函数实现。
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.video_play_actionbar_bg)));
头部栏文本颜色采用Html.fromHtml()的样式设置来实现。
actionBar.setTitle(Html.fromHtml("<font color=\"#FFFFFF\">" + pTitle +"</font>"));
5、视频重命名
初始视频重命名逻辑处理方法是在重命名视频文件之后,删除要重命名的这个视频在数据库中的原始数据,再发送在SD卡中的重命名之后的视频文件扫描广播,将新的数据扫描到媒体数据库中,但这个方法的处理并不具备实时性,会出现在重命名操作之后,在编辑页面列表项的视频文件名显示还是重命名之前的文件名称。后面改成在重命名SD卡中的视频文件之后,直接更新数据库中MediaColumns.DISPLAY_NAME、MediaColumns.DATA两个字段的值。
- Rom开发 视频播放器开发
- iOS视频播放器开发
- Android视频播放器开发
- 多媒体开发---视频播放器开发(android)
- 开发视频播放Filter
- 开发视频播放Filter
- 开发视频播放Filter
- 开发视频播放Filter
- 用java开发视频播放器
- Silverlight 视频播放器开发过程记录
- Android应用开发之视频播放器
- MPMoviePlayerController 视频播放器—IOS开发
- ios开发之 MPMoviePlayerController 视频播放器
- 使用opencv开发视频播放器一
- 使用VideoView开发视频播放器
- Android开发:本地视频播放器
- Flash视频播放器开发经验总结
- ios开发之 MPMoviePlayerController 视频播放器
- 元素水平垂直居中【弹性布局 || Translate】
- Linux术语全称
- CSS3 display:flex和display:box有什么区别?
- Codeforces Round #308 (Div. 2)
- 第二十四讲 if语句的嵌套
- Rom开发 视频播放器开发
- 02_Android写xml文件和读xml文件
- POJ 1159 && HDU 1513 Palindrome(LCS)
- 设置UIView的位置和尺寸
- 回复吧~这样我就能快速加经验了!
- 内部排序(五)基数排序
- PHP5.2至5.6的新增功能详解
- 对新手在使用jni不怎么明白的一些指导;我看看来几处这方面的教程写的,相当于用自己的语言转述一下
- ASP.NET环境下配置FCKEditor并上传图片及其它文件