Source: dom/videoPlay.js

/*
 * @Author: zhangyu
 * @Email: zhangdulin@outlook.com
 * @Date: 2021-06-11 14:27:40
 * @LastEditors: zhangyu
 * @LastEditTime: 2021-06-15 10:48:26
 * @Description: 
 */

// chrom浏览器禁止自动播放 video标签添加muted属性静音可以自动:
// android h5 webview
// android 4.2 webview添加了是否需要用户手势去触发音视频的播放开关,默认为true(需要用户手势触发)。
// 将webview的这个开关设置为不需要用户触发:
// mWebview.getSettings().setMediaPlaybackRequiresUserGesture(false);
// IOS h5 webview
// IOS APP给webview设置mediaPlaybackRequiresUserAction后可以允许自动播放.
/**
 * @description: 设置video 自动播放 
 * @param {*} id video的dom的id
 * @return {*}
 */
export function setVideoPlay(id) {  
    /**video.play()返回一个promise,未禁止则resolve,禁止则reject**/
    let video = document.getElementById(id);
    video.addEventListener('ended', () => { //结束
      console.log("播放结束")
      // this.$bridgePromise.closeWebView()
    }, false);
    video.muted = false; // 设置有音
    let videoPlay = video.play();
 
    // document.body.addEventListener('mousedown', function () {
    //   video.muted = false;
    // }, false);
 
    videoPlay.then(() => {
      console.log('可以自动播放');
    }).catch((err) => {
      console.log(err);
      console.log("不允许自动播放");
 
      //视频元素可以选择静音后再播放,提示用户打开声音
      video.muted = true;
      // video.play();
 
      video.onloadedmetadata = function () {
        video.muted = false;
        video.play()
      }
      video.load() // 重新
    })
      //也可以在用户交互后调用.play()
      // ...
}