1. 背景:
我们都知道,Android手机的原生视频播放器并没有悬浮功能,也就是说当用户看视频时,就不能有其他方面的操作,例如看短信、看网页等打开其他应用。如果我们的手机能让用户一边看视频,一边对手机进行其他方面操作,对用户来说是非常不错的体验,这样能提高我们手机的竞争力!同时我们的一些客户也有这方面的需求,因此我们有必要实现悬浮视频播放器这功能。
2. 核心知识点归纳:
1).核心类:MediaScanner扫描类
Android系统在开机的时候,MediaScanner服务会在后台自动扫描系统内存及SD上的图片、音频、视频等文件资源,将这些媒体信息加入到MediaStore数据库中。程序可以直接从MediaStore中读取相应的媒体信息。通过注册监听MediaScanner广播的Intent,可以获知MediaScanner服务是否在进行后台的扫描工作:
Intent.ACTION_MEDIA_SCANNER_STARTED表示MeidaScanner开始扫描;
Intent.ACTION_MEDIA_SCANNER_FINISHED表示MediaScanner扫描结束;
MediaScanner这项功能使用到的三种android的基本组件:
(1)MediaScannerService(从Service中派生),完成扫描任务,并将扫描结果放入到媒体数据库中。
(2)MediaProvider(ContentProvider派生),针对媒体库进行相关操作请求,一般情况就是写,删,查,更操作。
(3)MediaScannerReceiver接收外界的扫描请求。
这里我们只需要明白一点是:多媒体数据库中的信息是由MediaScanner添加的。
2).核心类:MediaStore 多媒体类