0

我想知道默认媒体播放器是如何工作的。比如它如何扫描 sd 卡中的所有歌曲,如何显示它们,所以整体上使用默认媒体播放器。
我想要此信息,以便我可以将其与我的自定义媒体播放器进行比较,并检查我的媒体播放器与默认播放器相比的运行速度。我尝试搜索互联网,但无法找到与此相关的一些相关信息。

4

2 回答 2

1

您的问题的视角非常广泛,因此,我将向您推荐相应的路径以了解整个系统。

一是整体处理media filesGallery应用开始。虽然不是入口点,ImageCacheRequest但可能是开始研究的一个很好的参考点,它显示了如何读取缓存的图像并将其渲染到屏幕上。

接下来,要了解此缩略图是如何生成的,您必须参考ThumbnailManager.java从 调用哪个cameramms

Thumbnail类内部使用MediaMetadataRetriever哪个是检索缩略图数据的主要类。

MediaMetadataRetriever有一个相应的实现,如此JNI所示。感兴趣的主要功能是.getFrameAtTime

最常见的实现是StagefrightMetadataRetriever,它的工作原理很简单。首先,MediaExtractor创建一个解析器,它将嗅出媒体文件类型并创建一个相应的解析器实体,如下所示。接下来,解析器将调用编解码器以在请求的时间戳处解码相应的关键帧extractVideoFramewithFlags,并返回图像,如 中所示。

在这个函数内部,一个编解码器被创建,帧被解码,颜色转换并返回给调用者,调用者将把它传送给更高的应用程序。

简而言之,我感觉你的播放器不会出现,只要在系统中注册了相应的解析器和编解码器,就会生成缩略图。

于 2013-06-26T00:32:28.040 回答
1

我想知道默认媒体播放器的工作原理

有数十种“默认媒体播放器”应用程序,因为不同的 Android 设备附带不同的“媒体播放器”应用程序,通常由其设备制造商编写。

欢迎您查看AOSP Music 应用程序的实现,您可能还可以查看其他开源媒体播放器。

于 2013-06-25T22:58:25.613 回答