Android media播放卡顿问题分析流程

首先是看Audio是否卡顿,若Audio卡顿,则优先分析Audio.待Audio问题处理结束后,再看Video是否正常。

对于non-tunnelplayback, 首先考虑apk是否有frame drop.

若有,则主要考虑送数据是否慢以及driver解图是否慢。

1.检查当前播放码流fps值,然后检查ACodec FBD是否有达到预期fps值。

2.若FBD没有达到,则分析omx component里面是因为数据送的慢,还是driver解图解的慢。

3.若是因为数据送的慢,再在送数据的各个环节加log确认

4.若是driver解的慢,则检查driver.

5.若FBD达到预期速度,则考虑APK拿数据的速度是否慢,基本log要加到APK直接调用的API.避免引起误解。

若没有frame drop,则要考虑surfaceflinger/hwc以及更后级是否有drop.


对于tunnelplayback,则主要保证送数据不慢即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android MediaSource是ExoPlayer框架中的一个组件,用于定义要播放的媒体资源。可以通过使用不同的MediaSource来播放不同的媒体,包括视频和音频。 在ExoPlayer中,有几种不同类型的MediaSource可供选择使用。其中包括: 1. ExtractorMediaSource:用于从媒体文件中提取媒体数据的MediaSource。可以使用Uri指定媒体文件的位置,并使用ExtractorMediaSource.Factory创建实例。 2. ConcatenatingMediaSource:用于无缝拼接多个媒体资源的MediaSource。可以将多个ExtractorMediaSource或其他MediaSource实例传递给ConcatenatingMediaSource,并使用player.prepare()方法将其注入到ExoPlayer中。 3. LoopingMediaSource:用于循环播放单个媒体资源的MediaSource。可以将要循环播放MediaSource传递给LoopingMediaSource,并指定循环播放的次数。 这些MediaSource可以与其他ExoPlayer组件(如Renderer、TrackSelector和LoadControl)一起使用,以实现更丰富的媒体播放功能。 请注意,上面提到的代码示例是使用ExoPlayer框架实现视频拼接和循环播放的示例。您可以使用ExtractorMediaSource、ConcatenatingMediaSource和LoopingMediaSource类来创建适合您需求的媒体播放器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Android】使用Exoplayer播放视频](https://blog.csdn.net/m0_37602827/article/details/109191070)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值