@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
相关推荐
灿烂阳光g2 小时前
domain_auto_trans,source_domain,untrusted_app低调小一4 小时前
Android传统开发 vs Android Compose vs HarmonyOS ArkUI 对照表雨白4 小时前
Java 多线程指南:从基础用法到线程安全00后程序员张5 小时前
详细解析苹果iOS应用上架到App Store的完整步骤与指南程序员江同学6 小时前
ovCompose + AI 开发跨三端的 Now in Kotlin App2501_915106327 小时前
Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南消失的旧时光-19437 小时前
Kotlinx.serialization 使用讲解灿烂阳光g8 小时前
SELinux 策略文件编写.豆鲨包8 小时前
【Android】Viewpager2实现无限轮播图