账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在IOS设备中,使用setTimeout方法调用video标签的play方法的相关问题?
    23
    0

    如题,在Vue项目中,真机测试,在IOS设备中使用setTimeout方法延迟调用video标签的play方法,发现延迟1000ms,调用video的play方法可以播放,但>1000ms的时候,需要点击两次才能播放视频,请问这是什么原因?

    具体代码如下:

    video组件:
    
    <div class="courseDetail--video">
        <div v-show="!stream.showFlag" class="video_layer">
            <div class="video--banner">
                <img :src="courseInfo.picPath" alt />
            </div>
            <div class="video--mask"></div>
            <div
                v-show="stream.type === 'audio' || stream.type === 'video'"
                class="video--startButton"
                @click="playVideoTest"
            >
                <p v-if="stream.type === 'audio'">立即试听</p>
                <p v-else-if="stream.type === 'video'">立即试看</p>
            </div>
        </div>
        <div class="video_content">
            <div v-show="stream.isInadvertisement" class="video_content--adv"></div>
            <template v-if="stream.type === 'audio'">
              <div class="audio_banner">
                <img :src="courseInfo.picPath" alt />
              </div>
              <audio ref="audio" controls="controls" :src="stream.resourceURL">
                <source :src="stream.resourceURL" type="audio/ogg" />
                您的浏览器不支持 audio 元素。
              </audio>
            </template>
            <template v-else-if="stream.type === 'video'">
              <video
                ref="video"
                :poster="courseInfo.picPath"
                controls="controls"
                webkit-playsinline="true"
                playsinline="true"
                x-webkit-airplay="allow"
                x5-video-player-fullscreen="true"
                x5-playsinline="true"
                x5-video-orientation="portraint"
                :src="stream.resourceURL"
              >
                <source :src="stream.resourceURL" type="video/mp4" />
                <p>抱歉,您的浏览器不支持内嵌视频!</p>
              </video>
            </template>
        </div>
    </div>
    
    data() {
        return {
          stream: {
            isInadvertisement: false,
            isInPlaying: false,
            showFlag: false,
            currentIndex: 0,
            type: "video",
            resourceURL: "xxxx.mp4"
          }
        }
    }

    js部分:

    playVideoTest() {
      this.stream.showFlag = true;
      setTimeout(() => {
        this.$refs.video.play();
      }, 2000);
    },
    2019.7.23补充:
    通过昨天的测试发现,真的就1000ms是个界值,超过1000ms,1001ms在真机上测试都不能立即调用vidoe的play()方法,有人知道具体的原理吗?
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版

    回答动态

    师傅被妖怪抓走了:发布了悬赏问题火爆全网的“元宇宙”到底是什么?预计能赚取 1积分收益
    酒后略带风情:发布了悬赏问题Android内存中Graphics与Code占用过高预计能赚取 10积分收益
    扛起拖把扫天下:发布了悬赏问题typescript如何导出接口配置?求解,谢谢!预计能赚取 10积分收益
    发布了悬赏问题Vue 如何改变返回页面的路径?如让B页面只能返回到A页面.预计能赚取 11积分收益
    发布了悬赏问题vue H5移动端;底部bottom固定定位,安卓弹起键盘导致页面变形如何解决?预计能赚取 10积分收益
    发布了悬赏问题请问为什么tomcat8.5 GET请求中文正常,POST请求还需要设置UTF-8.预计能赚取 10积分收益
    发布了悬赏问题vue2.5+ts创建以及引入jq的方法预计能赚取 11积分收益
    情场浪女:发布了悬赏问题import ggplot时报错module 'pandas' has no attribute 'tslib'预计能赚取 10积分收益
    见心书画许老师18753375161:发布了悬赏问题echarts3 legend禁止点击事件,允许悬浮事件预计能赚取 11积分收益
    aa_92cb0bd09f:发布了悬赏问题codewar上的一个问题预计能赚取 11积分收益