首页 文章

Android默认媒体播放器

提问于
浏览
0

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

2 回答

  • 1

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

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

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

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

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

    最常见的实现是StagefrightMetadataRetriever,它的工作原理很简单 . 首先,创建一个解析器,即解析媒体文件类型并创建相应的解析器实体,如图所示here . 接下来,解析器将调用编解码器以在请求的时间戳处解码相应的 key frame 并提供图像,如在extractVideoFramewithFlags中可以观察到的那样 .

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

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

  • 1

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

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

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

相关问题