NVUE 复制代码即可实现
- 发布:2021-02-08 13:59
- 更新:2021-04-14 16:21
- 阅读:2083
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.1.2
手机系统: Android
手机系统版本号: Android 9.0
手机厂商: 小米
手机机型: 9
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
正常播放
正常播放
实际结果:
播放失败
播放失败
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(视频防盗链配置)
最佳回复
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 关于开发者反馈的失败情况下 事件响应异常的情况 暂时无法复现。
好像自己回复自己帖子越多,处理权重就越低,帮你顶一下
-
回复 MonikaChen: 官方早就开通了付费咨询啊,不顾感觉也不是太合适,毕竟有些bug是官方更新弄出来的,又不是用户捣鼓出来的,具体怎么做还是看官方自己的意思吧,毕竟是免费在用人家的产品,自然得按人家的规矩办事,只是希望能在处理问题这方面加快一些效率吧
2021-02-25 14:01
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