前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决 Android PLMediaPlayer 视频播放异常小结

解决 Android PLMediaPlayer 视频播放异常小结

作者头像
阿策小和尚
发布2019-08-12 14:52:55
1.6K0
发布2019-08-12 14:52:55
举报
文章被收录于专栏:阿策小和尚阿策小和尚

和尚最近一直在处理一个比较纠结的问题,项目中接入了七牛云视频SDK PLMediaPlayer,七牛云视频SDK是很强大的一款三方视频库。 和尚项目中需要展示的是 .mp4 格式的视频,曾经遇到的问题包括:个别视频有音频但是看不到视频,个别视频无法播放等。和尚查了好久发现对问题解决的资料相对较少,仅记录一下和尚处理的方式。

尝试如下:

  1. 查看运行官方 PLDroidPlayer Demo ,将有问题的视频链接添加测试,当解码方式换为 软解码 时,发现视频都可以正常播放;当更换为硬解码或 Auto 方式时确实有的视频无法正常播放;
  2. 和尚大致找到了问题方向,大概是设置的解码方式有问题; 和尚用的也是 Auto 方式,但是和尚不确认硬解码解码失败的分割点在哪里;于是把 Auto 方式 AVOptions.MEDIA_CODEC_AUTO 更换为软解码方式 AVOptions.MEDIA_CODEC_SW_DECODE
代码语言:javascript
复制
AVOptions options = new AVOptions();
int codec = AVOptions.MEDIA_CODEC_SW_DECODE;
options.setInteger(AVOptions.KEY_MEDIACODEC, codec);
options.setInteger(AVOptions.KEY_PREPARE_TIMEOUT, 10 * 1000);
options.setInteger(AVOptions.KEY_LIVE_STREAMING, 0);
options.setString(AVOptions.KEY_CACHE_DIR, FileUtils.VideoCacheSD);
  1. 测试发现,基本各种格式的 .mp4 都可以播放,但是和尚又遇到了一个新的问题:有一个视频播放卡顿,不是网络影响,像一帧一帧的卡顿;但是在官网 Demo 中测试一切正常,然后两边对比,参数都一致,很奇怪;
  2. 偶然机会同事说会不会跟 NDK 有关系,因为应用为了生成的 apk 包比较小,只用了 "armeabi",于是按照官网的 Demo 放开所有的 NDK 方式;再次测试视频可以正常播放。
代码语言:javascript
复制
ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" }

至此,七牛云 PLMediaPlayer 个别视频无法播放的问题基本已经解决,相对也牺牲了一些内存。 和尚也联系了一下七牛云的专业客服,和尚这个别的视频格式也确实有点小问题,客服小哥建议再视频播放时压缩为正常的 .mp4 格式较好。


Tips: 和尚在测试过程中偶遇 ExoPlayer 也是一款很强大的视频播放器,推荐一下!


和尚了解的软解码与硬解码的区别在于:

【软解码】使用的是 CPU 方式进行编码,因此性能消耗较大,电量等方面消耗也较大,时间上消耗略长;解码支持格式比较全面; 【硬解码】使用的是非 CPU 方式进行编码,性能较高,解码时间短;但是解码支持的格式相对较少; 【Auto 解码】七牛云的文档说明,在硬解码失败的情况下会自动更换为软解码。


和尚对于视频的了解还很初级,还有很多不清楚和不理解的地方,如果又不对的地方还希望多多指出。以下是和尚公众号,欢迎闲来吐槽~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿策小和尚 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 和尚了解的软解码与硬解码的区别在于:
相关产品与服务
云点播
面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档