MediaPlayer的消息机制分析

本文详细解读了Android原生MediaPlayer中Java层到JNI、JNI到MediaPlayer.cpp的回调机制,重点围绕listener、postevent和notify的交互,以及错误(-38,0)的来源追踪。涉及JNI调用、mediaplayer组件、Bn层和底层播放器的联动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引子:
先贴一段log:

08-18 21:57:20.110 11775 11812 V MediaPlayer: resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
08-18 21:57:20.110 11775 11775 E MediaPlayerNative: error (-38, 0)
08-18 21:57:20.110  3206  3206 D MTK_KL  : 4,60541,9379664038,-;[MI_AUDIO_Stop:8901][3079] u32ErrCode:0x0
08-18 21:57:20.110  3206  3206 D MTK_KL  : 4,60542,9379664153,-;[_MI_AOUT_NotifyDisconnectInput:7948][3079] hAoutImpl:0x17000002, hInputImpl:0x19000000
08-18 21:57:20.110  3206  3206 D MTK_KL  : 4,60543,9379664175,-;[_MI_AOUT_SetMultiMute:2794][3079] ePath:2, pszMuteName:_MI_AOUT_NotifyDisconnectInput, bMute:1, u32AutoUnmuteTimer:246, u32AoutMuteFlag:0x3
08-18 21:57:20.110 11775 11812 V MediaPlayer: cleanDrmObj: mDrmObj=null mDrmSessionId=null
08-18 21:57:20.110 11775 11775 E MediaPlayer: Error (-38,0)
08-18 21:57:20.110 11775 11812 V MediaPlayer: resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
08-18 21:57:20.110 11775 11812 V MediaPlayer: cleanDrmObj: mDrmObj=null mDrmSessionId=null

经常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值