android MediaPlayer NuPlayer

本文详细介绍了Android多媒体播放器的实现,从MediaPlayer的setDataSource方法开始,揭示了其如何通过Binder机制与MediaPlayerservice交互,并最终由NuPlayer执行。NuPlayer利用ALooper/AHandler机制进行异步消息处理,包含了Source、Decoder、Render等组件,实现了音视频的解码和渲染。NuPlayerDriver作为NuPlayer的封装,直接调用NuPlayer进行播放控制。
摘要由CSDN通过智能技术生成

MediaPlayer


通常MediaPlayer的调用逻辑是,构造函数-> setDataSource -> SetVideoSurfaceTexture-> prepare/prepareAsync -> start-> stop-> reset-> 析构函数,按照实际需求还会调用pause、isPlaying、getDuration、getCurrentPosition、setLooping、seekTo等方法。


1、 MediaPlayer的状态图
Idle状态
调用new或reset()方法创建MediaPlayer后进入空闲
End状态
调用release()后就结束
Error状态
播放控制操作出错或无效状态下调用播放控制操作
Initialized状态
调用setDataSource之后完成初始化
Prepared状态
同步prepare()或异步prepareAsync()完成准备
Preparing状态
是一种瞬时状态,调用prepareAsync()时会先进入此状态
Started 状态
要开始播放必须调用start()
Paused 状态
调用pause()并成功返回后播放可以被暂停
Stopped状态
调用sto
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

husanlim

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值