Android N MediaPlayer(一) : MediaMetadataRetriever分析

本文介绍了Android N中MediaMetadataRetriever类的用途,它用于获取多媒体文件的元信息,如专辑、艺术家、标题和年份。文章详细解析了MediaMetadataRetriever的创建流程,从Java API到JNI再到native层,涉及MediaMetadataRetriever、MetadataRetrieverClient和不同播放器的实现。并展示了如何使用MediaMetadataRetriever提取元数据的Java代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    MediaMetadataRetriever类方法

    用途:元数据(MetaData)获取

        获取多媒体文件中的元信息(metadata),eg. Album、Artist、Title、Year等信息,显示在UI界面。

        API说明:MediaMetadataRetriever class providesa unified interface for retrieving frame and meta data from an input mediafile.

        MediaMetadataRetriever类提供了一个统一的接口用于从一个输入媒体文件中取得帧和元数据。

        API官方链接:

              http://developer.android.com/reference/android/media/MediaMetadataRetriever.html

 

一、MediaMetadataRetriever 的创建流程解析

   java-->JNI-->native层的flow

    java:frameworks\base\media\java\android\meida 

    --- Java API类android.media.MediaMetadataRetriever

       MediaMetadataRetriever.java

    jni:framwworks\base\media\jni

      android_media_MediaMetadataRetriever.cpp

    native:frameworks\av\media\

      (libmedia)--->Mediametadataretriever.cpp

      (libmediaplayerservice)-->MetadataRetrieverClient.cpp

    注释:

    应用程序开发者调用Java API类android.media.MediaMetadataRetriever,进而调用到JNI层。JNI层调用用C++类MediaMetadataRetriever,后者又使用IMediaMetadataRetriever接口强指针(实际指向)进行跨进程调用到MediaPlayerService中的MetadataRetrieverClient。MetadataRetrieverClient是一个wrapper(包裹)类,它通过创建不同的多媒体框架的Retriever来获取元数据信息。

 

在xxPlayer中,添加MediaMetadataRetriever的实现

1、java层的实现(部分内容)

        mMediaRetriver = new MediaMetadataRetriever();
        if(mMediaRetriver != null){
            try{
                mMediaRetriver.setDataSource(videoPath);
                String

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值