设为首页 加入收藏

TOP

Android media媒体库分析之:MediaProvider(二)
2015-04-07 15:30:18 来源: 作者: 【 】 浏览:78
Tags:Android media 媒体 分析 MediaProvider

看一下第二种是如何实现的:


? ? ?IBinder binder = arguments.getIBinder("listener");
? ? ?IMediaScannerListener listener = (binder == null ? null
? ? ? ?: IMediaScannerListener.Stub.asInterface(binder));
? ? ?Uri uri = scanFile(filePath,
? ? ? ?arguments.getString("mimetype"));
? ? ?if (listener != null) {
? ? ? listener.scanCompleted(filePath, uri);
? ? ?}


代码


?private final IMediaScannerService.Stub mBinder = new IMediaScannerService.Stub() {
? public void requestScanFile(String path, String mimeType,
? ? IMediaScannerListener listener) {
? ?if (Config.LOGD) {
? ? Log.d(TAG, "IMediaScannerService.scanFile: " + path
? ? ? + " mimeType: " + mimeType);
? ?}
? ?Bundle args = new Bundle();
? ?args.putString("filepath", path);
? ?args.putString("mimetype", mimeType);
? ?if (listener != null) {
? ? args.putIBinder("listener", listener.asBinder());
? ?}
? ?startService(new Intent(MediaScannerService.this,
? ? ?MediaScannerService.class).putExtras(args));
? }


? public void scanFile(String path, String mimeType) {
? ?requestScanFile(path, mimeType, null);
? }
?};


那么问题来了:如果我们在App中想让系统媒体库解析具体某一个文件,应该怎么做呢?
从上面代码可以看到,MediaScannerService给我们提供的绑定接口,我们只需要传递filepath和一个IMediaScannerListener listener即可,媒体库在解析完之后会回调scanCompleted方法告诉我们解析结果;


第三步:创建MediaScanner对象,完成扫描和解析;
可见具体扫描、解析工作也不是MediaScannerService做的,MediaScannerService是只在调用sacn、acanfile方法时创建了MediaScanner对象并交给他处理;
MediaScanner在android.media.MediaScanner系统framework里面,这儿就不做讨论了;


MediaScannerService基本就这些内容了;


3、MediaProvider:
MediaProvider就是创建数据库,对外提供URI以实现对数据库的增删改查功能;


4、MediaThumbRequest:
Audio、Image、Video文件都是有缩略图的,缩略图路径存储在DB中,其真实文件存储在sd卡的DICM文件夹下,MediaThumbRequest只是提供给MediaProvider类操作数据库使用。
主要的就两个方法,一个新建缩略图方法:execute,一个更新缩略图方法:updateDatabase
新技能get:应用中获取缩略图,期待下一篇文章;


至此,MediaProvider结构分析清楚了,后续计划补两片文章:
APP中使用系统媒体库;
媒体文件扫描、解析是如何实现的;


见:


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android media媒体库分析之:分类.. 下一篇Android media媒体库分析之:调用..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: