`
modabobo
  • 浏览: 511973 次
文章分类
社区版块
存档分类
最新评论

媒体扫描scanFile的调用时序图

 
阅读更多

MediaScanner类的内部类MyMediaScannerClient类的scanFile函数用于扫描单个文件,在两种情况下会调用到此函数,下面分布分析:

一种是第三方应用发起扫描单个文件时,此时第三方应用通过发送广播的方式,传递一个文件路径或者文件夹路径进行扫描。

例如以下代码:

context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"
                + Environment.getExternalStorageDirectory() + "/男人好难.mp3")));

此时,MediaScannerReceiver接收到ACTION_MEDIA_SCANNER_SCAN_FILE广播后,就会启动MediaScannerService的scanFile函数进行扫描单个文件;如果传递过来的是一个路径的话,就会调用scan函数扫描目录。


另外一种是扫描目录时,native类MediaScanner的doProcessDirectoryEntry函数在扫描目录时,遇到单个文件则最终调用java类MediaScannerClient的scanFile函数进行扫描。


MyMediaScannerClient类的scanFile函数的调用时序图如下所示,对于video等文件的解析需要通过StagefrightMediaScanner在创建MediaMetadataRetriever对象,然后在创建解码器去解析媒体信息。


分享到:
评论

相关推荐

    vc++扫描硬盘文件ScanFile.zip

    vc++扫描硬盘文件ScanFile.zip visual c++扫描硬盘上的文件

    scanfile:进行文件扫描,只是为了好玩

    去扫描文件只是为了好玩而进行的文件扫描。

    Applied Biosystems SOLiD System 2.0 User Guide(scanFile).PDF

    SOLiD System 2.0用户手册

    Android 代码分析

    27.7 OpenCore应用的实际调用图 98 28 Am命令行启动程序 99 29 MediaPlayer架构介绍 101 29.1 MediaPlayer概述 101 29.2 MediaPlayer的接口与架构 103 29.2.1. 头文件IMediaPlayerClient.h 105 29.2.2. 头文件...

    芯邦v88量产工具 扩容设置 U盘

    主要针对一些芯邦V88型号的U盘,这种很多都是一些扩容的黑盘,当你发现你的V88型号的U盘量产后容量大大缩小的话,那么你就可以用该软件进行量产或扩容到你想要的容量。 但千万不能用该软件来进行非法盈利。

    Visual C++ 编程资源大全(源码 文件)

    catalog.zip 扫描磁盘所有文件的例子(2KB)<END><br>9,hexdump.zip 读16进制的文件(3KB)<END><br>10,findfiles.zip 使用递归算法在指定目录下查找文件(2KB)<END><br>11,listfiles.zip 在列表框中显示指定...

    测试平台模块phoenix-telnetclient.zip

    scanfile - scanfile a file by keyword,ex:!scanfile a.log test 1,1:contains keyword,0:not contains13.exit - exit client,ex:exit该工具用于部署到远程机器上,既是客户端也可以作为服务端,可以通过telnet命令...

    php读取出一个文件夹及其子文件夹下所有文件的方法示例

    分享给大家供大家参考,具体如下: ...$result = scanFile($path); function scanFile($path) { global $result; $files = scandir($path); foreach ($files as $file) { if ($file !=

    0xc0150002

    (3)Generate Activation Context 为 C:/scanfile/Debug/libclamavd.dll 失败。 参考错误消息: 操作成功完成。可以判断是libclamavd加载的时候出了点问题了,看了下它的manifest文件,其依赖库是Microsoft.VC80....

    Itanium Architecture For Programmers

    SCANFILE: Input and Output with Files Section 9.7. SORTINT: Sorting Integers from a File Section 9.8. Binary Files Summary References Exercises Chapter 10. Performance Considerations ...

Global site tag (gtag.js) - Google Analytics