@startuml package App{ class CallBacks{ <font color="#999933" size=20> notify </font>mOnPreparedListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnCompletionListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnBufferingUpdateListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnSeekCompleteListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnVideoSizeChangedListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnTimedTextListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mExtSubtitleDataListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnMediaTimeDiscontinuityListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnTimedMetaDataAvailableListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnErrorListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnInfoListener<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnDrmConfigHelper<font color="#999933" size=20> notify-END </font> <font color="#999933" size=20> notify </font>mOnDrmInfoHandlerDelegate<font color="#999933" size=20> notify-END </font> } } package libmedia{ class JAVA{ <font color="pink" size=20> notify </font>private static void postEventFromNative(Object mediaplayer_ref,int what, int arg1, int arg2, Object obj) <font color="brown" size=20> notify </font> <font color="brown" size=20> notify </font>public void EventHandler::handleMessage(Message msg) <font color="#999933" size=20> notify </font> } class JNI{ JNIMediaPlayerListener <font color="green" size=20> notify </font>void JNIMediaPlayerListener::notify(int msg, int ext1, int ext2, const Parcel *obj) <font color="pink" size=20> notify </font> } class MediaPlayer{ <font color="blue" size=20> notify </font> void MediaPlayer::notify(int msg, int ext1, int ext2, const Parcel *obj) <font color="green" size=20> notify </font> } } package Interface{ abstract class IMediaPlayerClient{ <font color="cyan">IMediaPlayerClient.h <font color="green">处理来自Client的回调 <font color="red" size=20> notify </font> {abstract} void notify(int msg, int ext1, int ext2, const Parcel *obj) = 0; <font color="blue" size=20> notify </font> } } package libmediaplayerservice{ class NuPlayerDriver{ <font color="#4f6459" size=20> notify </font> void NuPlayerDriver::notifyListener_l(int msg, int ext1, int ext2, const Parcel *in) <font color="orange" size=20> notify </font> } class NuPlayer{ <font color="#4f6459" size=20> notify-START </font> xxx() <font color="#4f6459" size=20> notify </font> } class Client{ <font color="orange" size=20> notify </font> void MediaPlayerService::Client::notify(int msg, int ext1, int ext2, const Parcel *obj) <font color="red" size=20> notify </font> } } NuPlayer --> NuPlayerDriver NuPlayerDriver --> Client IMediaPlayerClient --> MediaPlayer Client --> IMediaPlayerClient MediaPlayer --> JNI JNI --> JAVA JAVA --> CallBacks @enduml
[Android] NuPlayer回调通知直至App
ykun0892024-02-09 0:10
相关推荐
Android-Flutter3 小时前
Compose 管理状态 详解缓慢更新4 小时前
审批的加签与会签:多人意见怎么合我怀里的猫4 小时前
android-activity-launch-sequenceYB13756 小时前
Jetpack Compose 动画rememberInfiniteTransitionbaidu_247438619 小时前
Android 自定义竖直的虚线传奇开心果编程10 小时前
【Jetpack Compose娓娓道来】 第25课:ViewModel就是UI界面的大脑马立杰10 小时前
PHP 未授权 RCE 应急响应:CVE-2026-109618 CVE-2026-109619 排查与加固实战NamoAmitabha12810 小时前
安装“编译器环境”(Android Studio)--deepseek--Cocos --Creator3.8.8聚美智数11 小时前
文档转换 API‑文档转 PDF‑PDF 转文档‑异步文档处理‑文件格式迁移‑转换结果回调推送 API 接口介绍booboosui12 小时前
Android 上的无人回合:只放开 2 类工具,宁可空手