打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android中真正的Player

1.  在前面的介绍中,从Java到MediaPlayer---Binder---MediaPlayerService::Client已经讲清楚了。可是,在MediaPlayerService::Client <MediaPlayerService::create-> new Client / MediaPlayerService::Client::setDataSource->getPlayerType/createPlayer->android::createPlayer>中调用android::createPlayer之后,并把新创建的真正的Player保存到MediaPlayerService::Client中的mPlayer之后就没有下文了。

 

2. 真正的Player到底是什么样的?

根据本人的了解,有PVPlayer, StagefrightPlayer,MidiFile,VorbisPlayer,每个Player处理不同的媒体类型,他们通过getPlayerType(const char* url)的返回值进行分工完成。每个Player都有自己的特长,并做自己善于做的事情。详细分工情况见代码:sp<MediaPlayerBase> createPlayer(player_type playerType, void* cookie,
        notify_callback_f notifyFunc)
函数。

3. 如果要在自己的芯片上实现硬件Demux和硬件Decoder(如对于机顶盒中的TS流),怎么办呢?

据本人了解,有两种办法:

1)基于MediaPlayerInterface接口,实现其中所有的接口函数,自已创建一个XXPlayer,并增加到android::createPlayer中。每个接口函数的具体实现就与以前在Linux环境下实现的方式一样,简单吧,以前的成果都可以用上了。

2)在现在的Player(如StagefrightPlayer)中写Extractor和Decoder插件。

为了实现第二种方案,需要先了解StagefrightPlayer的架构。为什么两种方案都需要了解呢,因为怎么做,取决于你的首席架构师或CTO等。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android媒体播放器框架
Android多媒体开辟笔记【4】-- 上层mediaPlayer 是如何调到Stagefright的【2】【图解】
Android 2.3.4 RTSP的实现不在StageFright中,在opencore...
对hanchao3的《Android的MediaPlayer架构介绍》的补充 - Linu...
Android Audio 数据流详解 - forest的日志 - 网易博客
Android深入浅出之Binder机制 - innost - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服