question.md 5.6 KB

视频问题处理

目录介绍

  • 01.视频全屏播放崩溃
  • 02.视频播放解析异常
  • 03.视频
  • 07.如何查看m3u8时长以及播放m3u8视频有何特点
  • 08.为什么播放视频有的设备声画不同步
  • 09.视频初始化时为什么会出现黑屏
  • 10.如何实现视频的自动播放
  • 11.怎么获取网络视频的第一帧的截图
  • 14.拖动进度条后,加载中的转圈动画怎么才能显示出来
  • 15.怎样监听视频的播放进度和视频的播放状态
  • 16.滑动进度条的时候,如何显示当前开始时间
  • 17.如何监听视频播放自动判断横竖屏问题
  • 21.极少部分机型出现水平方向为充满的情况
  • 22.播几分钟后都会显示视频加载失败
  • 23.暂停播放的时候,没有释放音频焦点
  • 24.当视频在加载中,切换页面,后台仍会播放
  • 25.全屏播放按返回键退出全屏的判断
  • 26.如何取消每次进入的时候都会接着上次的继续播放
  • 28.mediaPlayer的setDataSource为什么要用反射的方式获取
  • 29.视频播放的AB循环怎么实现呢
  • 30.播放视频时添加headers或者cookie
  • 32.全屏播放完,重播的时候不能保持全屏播放
  • 33.TextureView会被销毁,导致视频有声音,没有图像
  • 34.倍速播放完成后重播应该继续之前的倍速
  • 36.关闭了硬件加速后,点击播放一直在加载状态转圈
  • 37.如何实现小窗口视频跟随手指在窗口移动
  • 41.recyclerView滑动到屏幕之外,视频无法停止播放
  • 44.列表滑动自动播放,条目滑出屏幕自动停止
  • 45.切换播放源,能否无感知的切换,只刷新播放的url
  • 46.SeekTo()方法定位到指定的毫秒数播放会跳帧的问题
  • 47.有的时候会出现视频影像不出现但是有声音的情况
  • 60.横屏播放视频,全屏后点击返回,Activity被修改为竖屏

01.视频切换到全屏播放崩溃,报错

  • 解决办法

    • android:configChanges 保证了在全屏的时候横竖屏切换不会执行Activity的相关生命周期,打断视频的播放
    • android:screenOrientation 固定了屏幕的初始方向
    • 这两个变量控制全屏后和退出全屏的屏幕方向

      <activity android:name=".ui.VideoActivity"
          android:configChanges="orientation|keyboardHidden|screenSize"
          android:screenOrientation="portrait"/>
      
  • 为何不配置该属性会崩溃

    • 该配置作用是固定屏幕初始方向,如果不配置则会导致屏幕旋转重走activity的生命周期导致崩溃。
  • 如果是其他崩溃,可以查看下日志

02.视频播放解析异常

10.如何实现视频的自动播放

11.怎么获取网络视频的第一帧的截图

14.拖动进度条后,加载中的转圈动画怎么才能显示出来

15.怎样监听视频的播放进度和视频的播放状态

16.滑动进度条的时候,如何显示当前开始时间

17.如何监听视频播放自动判断横竖屏问题

21.极少部分机型出现水平方向为充满的情况

  • 复写onVideoSizeChanged函数,看返回的宽度是否是屏幕宽度
  • 出现原因:播放器设置的高度不够,导致视频按比例缩放时水平方向无法撑满,建议设置视频为16:9,避免黑边

22.播几分钟后都会显示视频加载失败

  • 问题描述
    • 播几分钟后都会显示视频加载失败 是怎么回事呢 日志输出是 onError 1 - -1004 [216283790]
    • 播放几分钟就显示视频加载失败,点击重新播放一直在那里转圈圈不会重新播放,除非退出当前界面重新进来才能正常播放。
  • 方案,有待验证 可能是因为服务器没设置断点续传功能,在服务器端配置,尽量使用阿里云七牛等现成的视频点播服务。 也可以在手机端配置,如果视频体积不大可以设置header,让服务器一口气把所有视频都传给你。 header.put("Content-Type","video/mp4"); header.put("Accept-Ranges","bytes"); header.put("Status","206"); header.put("Cache-control","no-cache");

23.暂停播放的时候,没有释放音频焦点

  • 暂停播放的时候,没有释放音频焦点,导致其他app因为获取不到音频焦点无法播放

24.当视频在加载中,切换页面,后台仍会播放

25.全屏播放按返回键退出全屏的判断

26.如何取消每次进入的时候都会接着上次的继续播放

28.mediaPlayer的setDataSource为什么要用反射的方式获取

29.视频播放的AB循环怎么实现呢

30.播放视频时添加headers或者cookie

32.全屏播放完,重播的时候不能保持全屏播放

33.TextureView会被销毁,导致视频有声音,没有图像

34.倍速播放完成后重播应该继续之前的倍速

36.关闭了硬件加速后,点击播放一直在加载状态转圈

  • 硬件加速不能关闭,否则textureView不工作

41.recyclerView滑动到屏幕之外,视频无法停止播放

44.列表滑动自动播放,条目滑出屏幕自动停止

45.切换播放源,能否无感知的切换,只刷新播放的url

46.SeekTo()方法定位到指定的毫秒数播放会跳帧的问题

47.有的时候会出现视频影像不出现但是有声音的情况

60.横屏播放视频,全屏后点击返回,Activity被修改为竖屏