当前位置: 首页> 游戏> 网游 > 泉州中企动力科技股份有限公司_网页设计教程文字和图片_学生网页制作成品_app推广渠道在哪接的单子

泉州中企动力科技股份有限公司_网页设计教程文字和图片_学生网页制作成品_app推广渠道在哪接的单子

时间:2025/7/9 20:54:23来源:https://blog.csdn.net/u012188065/article/details/143197138 浏览次数:0次
泉州中企动力科技股份有限公司_网页设计教程文字和图片_学生网页制作成品_app推广渠道在哪接的单子

以MediaCodec.cpp中, mCodecLooper 成员的使用来说明

init() 函数中
if (mCodecLooper == NULL) {mCodecLooper = new ALooper;  // 构造ALoopermCodecLooper->setName("CodecLooper");  //设置消息处理线程的线程name,方便trace分析查看mCodecLooper->start(false, false, ANDROID_PRIORITY_AUDIO); //创建消息处理线程,新线程loop()循环检测主AHandler发来的消息
}// 将mCodec这个AHandle与关联的Alooper注册保存起来,// 注册后, AHandle发送的消息,才能找到对应的ALooper,并post// ALooper才能收到消息并调用AHandler的onMessageReceived来处理mCodecLooper->registerHandler(mCodec);reset() 函数中
if (mCodecLooper != NULL) {//清理掉 mCodec这个AHandler相关联的Alooper, 此AHandler再发的消息,就没有ALooper发送了mCodecLooper->unregisterHandler(mCodec->id());
}

以下是具体的调用流程
在这里插入图片描述
在这里插入图片描述
由于刚刚 registerHandler的对象是MediaCodec的 mCodec, 可能是ACodec,也可能是 CCodec,
这里以 ACodec为例, 简单说明 AMessage 的post与 处理流程

在这里插入图片描述

从图可知, AHandler post AMessage时, 最终会在新线程中调用AHandler (其子类)的 onMessageReceived() 函数来处理

注意
1个ALooper可能对应多个AHandler,但一个Handler只能有一个ALooper,
这样多个Handler共用一个ALooper时,其发送的消息共用一个消息队列(同一个ALooper的mEventQueue),
但AMessage的AHandler是确定的, 故调用 AMessage::deliver() -> Ahandler::deliverMessage() -> xxx::onMessageReceived()
就分发至各自的AHandler中来处理了

结论

由上可知

APP通过 MediaPlayer.java的方式来使用MediaCodec.cpp时,
NPDecoder-CL 是 NuPlayer创建MediaCodec时,
此线程处理 MediaCodec类 以及 非Video Codec的 ACodec 类中的相关信息;
因为在MediaCodec.cpp中, 针对非Video Codec时, registerHandler(mCodec)
还 registerHandler(this)

APP通过 MediaCodec.java的方式来使用MediaCodec.cpp时,
有 MediaCodec_looper 消息处理线程,
此线程不仅处理 JNI中 JMediaCodec 类的消息,
还处理 MediaCodec类 以及 非Video Codec的 ACodec 类中的相关信息;

CodecLooper 线程处理 Video Codec的 ACodec 类中的相关信息;

由上可知,ALooper注册了哪些AHandler, 则其消息处理线程均会处理对应的AHandler的信息
所以分析Trace的时候,先确定消息处理线程的name, 再查看代码其注册的AHandler,最后确定处理的消息

为了方便查找,如下列举了一些 Thread Name以及对应处理的AHandler的类
在这里插入图片描述

关键字:泉州中企动力科技股份有限公司_网页设计教程文字和图片_学生网页制作成品_app推广渠道在哪接的单子

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: