DCMarvel
DCMarvel
  • 发布:2021-02-08 13:59
  • 更新:2021-04-14 16:21
  • 阅读:1854

【报Bug】新版本Video问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.1.2

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: 小米

手机机型: 9

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

NVUE 复制代码即可实现

预期结果:

正常播放

实际结果:

播放失败

bug描述:

<video src="http://yuledy.helanzuida.com/20210109/18004_b6d563c6/index.m3u8" controls :http-cache="true"></video>    

**<!-- m3u8 http-cache 开启 直接播放失败 -->**    

<video src="http://listen.92kk.com/%2F2020%2F%E8%BD%A6%E8%BD%BD%E8%A7%86%E9%A2%91%2F2020-08%2F2020-08-22%2F%5BMp4%5D%E5%AE%89%E9%9D%99-%E9%9B%AA%E5%A4%9C-%E8%BD%A6%E8%BD%BDDJ%E9%9F%B3%E4%B9%90%E7%B2%BE%E5%93%81%E7%BE%8E%E5%A5%B3%E5%A4%9C%E5%BA%97DJ%E8%A7%86%E9%A2%91%5B%E7%8B%AC%5D.mp4"    
 controls :http-cache="true" codec="software" playStrategy="1"></video>    

 **<!-- MP4 软解 software + play-strategy 1平滑播放模式 卡 PPT -->**  

playStrategy 1平滑播放模式 open sl解码音频 视频前两秒钟无声音 视频前两秒钟无声音 视频前两秒钟无声音 ,视频播放完毕会触发 error: "detail": "network error"

新增加的API (codec,http-cache,play-strategy)并不支持动态修改!需要提前知道视频解码方式(硬解/软解) + 播放策略(默认策略/平滑播放模式)
**需求: 1.video支持本地加密m3u8播放! 2.video播放支持自定义Header(视频防盗链配置)

2021-02-08 13:59 负责人:DCloud_Android_DQQ 分享
已邀请:

最佳回复

DCloud_Android_DQQ

DCloud_Android_DQQ

1 新增加的API (codec,http-cache,play-strategy)并不支持动态修改!需要提前知道视频解码方式(硬解/软解) + 播放策略(默认策略/平滑播放模式)

是的,目前只支持静态配置。

2
video支持本地加密m3u8播放

目前还没支持,稍后会考虑支持

3 video播放支持自定义Header

下一个版本会支持 video 播放携带本地cookie 字段。 以便支持资源鉴权。

4
http cache只支持普通视频播放,不支持 m3u8

m3u8本身就是分片的。和普通视频的缓冲会冲突

5 关于 play-strategy 1平滑播放模式的问题。

play-strategy = 1 开启平滑模式,实际上是一个降级方案。(文档上描述不太对,我稍后调整一下)

你可以看一下更新记录中对应的ask地址。 他解决的问题是 一位开发者在 有限的带宽环境下 播放高比特率mp4视频的问题。导致卡顿进而音视频脱轨的问题。
付出的代价是: 限制了最大帧率25,开启了opensles(硬件音频,可能会有兼容性问题导致你说的开屏2s没声音,我这里没有复现),非流媒体协议开启流媒体缓存。

其实他并不能解决你 提升m3u8播放速度的问题。 你说的播放结束会抛出错误的问题 我不知道怎么观察。

总结一下解决方案:
1 你不要采用这个字段,他不能解决你的问题。我调整一下文档,更新描述
2 你留一下qq,在线沟通一下后续支持m3u8优化相关的需求

6 对于第五点的补充。 跟开发者沟通了一下。 目前解决方案如下:
1 play-strategy 新增字段属性3 下个版本生效。 支持m3u8加速
2 关于开发者反馈的失败情况下 事件响应异常的情况 暂时无法复现。

  • DCMarvel (作者)

    大哥,最重要的东西没抓住:playStrategy 1平滑播放模式(会提升m3u8缓存播放能力) 但是 open sl解码音频 视频前两秒钟无声音 视频前两秒钟无声音 视频前两秒钟无声音 ,视频播放完毕会触发 error: "detail": "network error".(个人怀疑m3u8播放开始时由于open sl解码音频,导致视频已经开始播放后才调用音频解码,视频无法正常播放完毕)这是我提到的新BUG

    2021-02-25 15:36

  • DCloud_Android_DQQ

    回复 DCMarvel: 一条一条写的。 正在写这条。

    2021-02-25 15:38

  • DCloud_Android_DQQ

    回复 DCMarvel: 大哥。给点时间,每天要做的事情很多的。

    2021-02-25 15:39

  • DCloud_Android_DQQ

    回复 DCMarvel: 你把复现这个问题的 链接给我。 我测试一下。

    2021-02-25 15:40

  • DCMarvel (作者)

    回复 DCloud_Android_DQQ: 其他都是次要的,主要是想用m3u8加速,但是前两秒内无声音,又不能正常播放结束


    <template>

    <view class="">

    <video src="https://vd3.bdstatic.com/mda-kktpy2eqqe26hna2/mda-kktpy2eqqe26hna2.mp4?pd=-1&pt=0&cr=0&vt=0&cd=0&did=dc6de1f640b321f8daca30443222c106&logid=3060893775&vid=4977569391213312387&auth_key=1614241260-0-0-593a2f349f201350f2b0191e45787c43&bcevod_channel=searchbox_feed" controls :play-strategy="1" codec="hardware" @error="videoErr" @ended="videoEnd"></video>

    <video src="https://yuledy.helanzuida.com/20200925/11775_0f1477b1/index.m3u8" controls :play-strategy="1" codec="hardware" @ended="videoEnd" @error="videoErr"></video>

    </view>

    </template>


    <script>

    export default {

    data() {

    return {};

    },

    components: {},

    onShow() {},

    onLoad() {},

    onUnload() {},

    onBackPress() {},

    methods: {

    videoEnd(e) {

    console.log(e);

    },

    videoErr(e) {

    console.log(e);

    }

    }

    };

    </script>


    <style>


    </style>

    2021-02-25 16:01

  • DCloud_Android_DQQ

    回复 DCMarvel: 好 我试试

    2021-02-25 16:06

  • DCMarvel (作者)

    回复 DCloud_Android_DQQ: Android NVUE页面

    2021-02-25 16:08

  • DCMarvel (作者)

    回复 DCloud_Android_DQQ: 嗯,您辛苦,另外以后在更新API文档中是不是写清楚点,也不用在一个一个试了.如:http-cache(注:开启后不支持m3u8),另外如果支持不太友好是不是可以默认关闭(这无所谓...).

    上边哪个音乐视频用 我的手机软解会卡成ppt...但是如果默认用硬解,文档中又提示(部分硬件可能存在兼容性问题).不支持动态切换,播放第三方视频就不知道用那种模式合适了.所以就很纠结了.video的情况太多了,需要顾及的面太广了

    2021-02-25 16:21

  • DCloud_Android_DQQ

    回复 DCMarvel: 我在上面回复你了。 文档 我现在调整一下 。 你留一下qq。

    2021-02-25 16:31

  • DCloud_Android_DQQ

    回复 DCMarvel: m3u8 开启 http-cache 没有做判断。稍后版本会修复

    2021-02-25 16:37

  • DCMarvel (作者)

    回复 DCloud_Android_DQQ: 平时不上QQ,您不如站内私信我都比qq及时

    2021-02-25 16:49

DCMarvel

DCMarvel (作者)

开工了吗?

DCMarvel

DCMarvel (作者)

此BUG还没复现吗

DCMarvel

DCMarvel (作者)

2021/2/25等待中...

突然好想你

突然好想你

好像自己回复自己帖子越多,处理权重就越低,帮你顶一下

  • DCMarvel (作者)

    权重无所谓,顶一下就会在问答首页了,总不会一直视而不见吧

    2021-02-25 10:42

  • 突然好想你

    回复 DCMarvel: 不是这样的,他们处理是按权重来的,权重高的优先,如果你的问题权重低,他们看到了也是视而不见的,如果说一天有上千个问题,他们依旧是按照原来的权重高低处理,如果今天处理不完明天可能又会增加新的权重,你的就一直会往后排,所以就导致有些问题好几年都没人处理。这也是为什么bug确认以后需要加分的原因

    2021-02-25 10:50

  • DCMarvel (作者)

    回复 突然好想你: BUG处理还要看排行的?真的这么奇葩吗....

    2021-02-25 11:27

  • 突然好想你

    回复 DCMarvel: 这并不奇葩啊,不这样每天都处理新的,没看到的怎么办,每天只处理首页好了,老需求没办法做了;就想你们公司给你需求一样,总有轻重缓急吧,不能给你一堆你就做那一堆,之前没完成的就不做了?

    2021-02-25 11:29

  • MonikaChen

    回复 突然好想你: 其实可以增加一个积分消耗机制,发帖人自定义积分多少用于体现权重

    2021-02-25 11:36

  • 突然好想你

    回复 MonikaChen:这不就是相当于插队吗?后面的问题只要积分设置得高永远在前面,等大家积分都没了,又回归这种状态了,治标不治本

    2021-02-25 11:42

  • DCMarvel (作者)

    回复 突然好想你: 嗯,也是.不过还是佩服视而不见的行为!

    2021-02-25 11:47

  • iOS_DJX

    回复 DCMarvel: 不是视而不见 如楼上这个兄弟所说 工作也会有个优先级的排序 你这个部分问题属于新需求 肯定要走排期 而且我们也会酌情 看这个需求是否具有通用性和广泛性 决定他的优先级顺序

    2021-02-25 11:54

  • DCMarvel (作者)

    回复 iOS_DJX: 我下边是写了需求,上边反馈的BUG是video 更新带来的新问题,也是需求行列吗....

    2021-02-25 12:19

  • MonikaChen

    回复 突然好想你: 那就付费付费吧,遵循经济学规律,官方也赚点钱

    2021-02-25 13:54

  • 突然好想你

    回复 MonikaChen: 官方早就开通了付费咨询啊,不顾感觉也不是太合适,毕竟有些bug是官方更新弄出来的,又不是用户捣鼓出来的,具体怎么做还是看官方自己的意思吧,毕竟是免费在用人家的产品,自然得按人家的规矩办事,只是希望能在处理问题这方面加快一些效率吧

    2021-02-25 14:01

速翔网络

速翔网络

APP安卓和苹果,http-cache开启没效果,是不是只针对nvue才有效果?

  • DCMarvel (作者)

    看看文档,前几天官方更新的文档.如果没更新 强制刷新一下

    2021-03-01 15:49

降龙十八掌

降龙十八掌

同求解决方案,,,官方的app视频播放m3u8的确很卡,,网页播放非常流畅。。不知道什么原因

  • DCloud_Android_DQQ

    play-strategy = 3 试试

    2021-04-14 17:02

  • makeit

    play-strategy = 3 后你那里还卡吗?

    2021-11-12 11:55

  • 降龙十八掌

    回复 makeit: 一样很卡,。,,浏览器访问应该提供了加速效果

    2021-11-13 16:32

该问题目前已经被锁定, 无法添加新回复