美文网首页
Android开发GSYVideoPlayer6.0.3竖版视频

Android开发GSYVideoPlayer6.0.3竖版视频

作者: 你的益达233 | 来源:发表于2021-01-25 09:28 被阅读0次

    二、解决思路

    原因:根据我反复查看它源码,确定视频控件的宽高算的有问题,一步步去看赋值,结果是ijk的c代码计算出来的,这肯定是没法改的

    开始找解决方案:

    • 先去找GSYVideoPlayer的github,发现用它的最新的版本是正常的。这给了点解决它的信心
    • 但是我项目还是用的是android suppourt,GSYVideoPlayer最新版用的是androidx。这时升级项目为androidx明显不行,工作量巨大,还要测试。果断放弃
    • 然后去找GSYVideoPlayer6.0.3版本的,下载下来测试变形视频,结果还是变形的。这是不是没法解决了。
      一度我也觉得没法解决,当然你也可以叫接口返回视频真实的分辨率,自己手动设置视频的宽高

    我的发现

    • 为什么最新版8.0.0没问题,然后观看了ijk等底层的库有没有变,发现没变。证明6.0.3的ijk也是能获取真实的视频宽高的
    • 关键MeasureHelper的doMeasure算视频宽高方法内容变了,替换结果还是变形
    • 只能在log上看看,有什么发现没有,结果恍然大悟,底层获取视频宽高的库不一样。
      它demo正常的是用PlayerFactory.setPlayManager(IjkPlayerManager.class),而我项目设置的是PlayerFactory.setPlayManager(Exo2PlayerManager.class)

    总的解决方案:

    1、要用PlayerFactory.setPlayManager(IjkPlayerManager.class)
    2、MeasureHelper的doMeasure要替换成最新版本的,如果没有的属性,相应删掉即可

    还有问题,请评论或者私信我,我每天都看简书的

    相关文章

      网友评论

          本文标题:Android开发GSYVideoPlayer6.0.3竖版视频

          本文链接:https://www.haomeiwen.com/subject/gldbzktx.html