@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
相关推荐
Ya-Jun4 小时前
常用第三方库:flutter_boost混合开发_一条咸鱼_5 小时前
深度剖析:Android NestedScrollView 惯性滑动原理大揭秘_一条咸鱼_5 小时前
深度揭秘!Android NestedScrollView 绘制原理全解析_一条咸鱼_5 小时前
揭秘 Android CoordinatorLayout:从源码深度解析其协同工作原理_一条咸鱼_5 小时前
揭秘 Android View 的 TranslationY 位移原理:源码深度剖析_一条咸鱼_5 小时前
揭秘 Android NestedScrollView 滑动原理:源码深度剖析_一条咸鱼_5 小时前
深度揭秘:Android NestedScrollView 拖动原理全解析_小马快跑_5 小时前
重温基础:LayoutInflater.inflate(resource, root, attachToRoot)参数解析_一条咸鱼_5 小时前
揭秘!Android RecyclerView 预取(Prefetch)原理深度剖析_一条咸鱼_5 小时前
揭秘 Android ImageView:从源码深度剖析使用原理