Android默认媒体播放器

时间:2013-06-25 22:50:06

标签: android media-player android-mediaplayer

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

2 个答案:

答案 0 :(得分:1)

  

我想知道默认媒体播放器是如何工作的

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

欢迎您查看the implementation of the AOSP Music app,也可以查看其他开源媒体播放器。

答案 1 :(得分:1)

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

首先,media files的整体处理从Gallery应用程序开始。虽然不是切入点,但ImageCacheRequest可能是开始研究的一个很好的参考点,它展示了如何在屏幕上读取和渲染缓存的图像。

接下来,要了解如何生成此缩略图,您必须引用从cameramms等处调用的ThumbnailManager.java

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

MediaMetadataRetriever具有相应的JNI实施,如here所示。感兴趣的主要功能是getFrameAtTime

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

在此函数内部,codec is created,帧被解码,颜色转换并返回给调用者,调用者将相同的帧传输到更高的应用程序。

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