小程序video:视频加载没延迟,不设置封面默认视频第一帧,可通过属性,或调用函数方式自动播放,还可以不静音的自动播放
h5 移动端video:视频有明显加载loading,不设置封面就是灰色而不是视频第一帧,必须要静音才能自动播,通过autoplay控制自动播放,通过pc浏览器能自动播,小程序不能自动播,通过js,play()控制,pc浏览器能自动播,小程序模拟器能播,手机端浏览器能自动播,但是微信小程序还是不能自动播放。
问题:
1.我想知道微信小程序video实现上面几点的功能如何实现的?
微信做小程序的意义在于安全管控、用户隐私,之前淘宝有做过小程序,仓库开源的rax,他的做法是用shadow dom的形式封装成一个一个标签,你用的时候实际上是组件给的api,行为是它内部控制的,微信小程序没开源,猜测微信应该是把小程序标签转为dsl再映射为它内部的组件,不一定对,反正就是要控制开发者的行为。
2.为什么h5 移动端video通过js控制微信小程序端还是无法自动播,怎么拦截掉的?
微信内置浏览器会拦截video标签,这是由于微信为了提升用户体验和防止视频内容被隐藏,对video标签进行了特殊处理。这种处理方式导致video标签在微信内置浏览器中无法正常自动播放,甚至在某些情况下完全不可见1。
在iOS平台上,可以通过监听WeixinJSBridgeReady事件并在事件触发后调用video.play()来实现视频的自动播放
在安卓平台上,暂无方法
3.我在h5移动端进行开发,难道没有一个能与微信小程序video的表现一致的第三方库吗?又或者我想自己开发一个但是我不知道实现原理。
微信小程序没开源,人家功能怎么实现的也看不见,还内置浏览器,到底做什么处理了也看不见,什么拦截什么不拦截也不清楚,而且大部分第三方库里面都还是video标签,感觉需要很大试错成本,说服产品接受一下点击再播放。。。。。。
(其实是个求助贴,有懂的大神请指教)