我想知道默认媒体播放器是如何工作的。就像它扫描SD卡中的所有歌曲,它是如何显示它们一样,所以整个整个工作在默认媒体播放器上。
我想要这些信息,以便我可以将它与我的自定义媒体播放器进行比较,并检查我的媒体播放器的工作速度与默认播放器相比有多快。我尝试过搜索互联网,但无法找到与此相关的一些相关信息。
答案 0 :(得分:1)
我想知道默认媒体播放器是如何工作的
有许多“默认媒体播放器”应用程序,因为不同的Android设备附带不同的“媒体播放器”应用程序,通常由其设备制造商编写。
欢迎您查看the implementation of the AOSP Music app,也可以查看其他开源媒体播放器。
答案 1 :(得分:1)
您的问题在视角方面非常广泛,因此,我将向您推荐相应的路径,以了解整个系统。
首先,media files
的整体处理从Gallery
应用程序开始。虽然不是切入点,但ImageCacheRequest
可能是开始研究的一个很好的参考点,它展示了如何在屏幕上读取和渲染缓存的图像。
接下来,要了解如何生成此缩略图,您必须引用从camera
,mms
等处调用的ThumbnailManager.java
。
Thumbnail
类内部使用MediaMetadataRetriever
,这是检索缩略图数据的主要类。
MediaMetadataRetriever
具有相应的JNI
实施,如here所示。感兴趣的主要功能是getFrameAtTime
。
最常见的实现是StagefrightMetadataRetriever
,它的工作原理很简单。首先,创建MediaExtractor
即解析器,它将嗅探输出媒体文件类型并创建相应的解析器实体,如图所示here。接下来,解析器将调用编解码器以在请求的时间戳处解码相应的关键帧,并在extractVideoFramewithFlags
中观察到提供的图像。
在此函数内部,codec is created,帧被解码,颜色转换并返回给调用者,调用者将相同的帧传输到更高的应用程序。
简而言之,我觉得你的播放器不会出现,只要相应的解析器和编解码器在系统中注册,就会生成缩略图。