raise
raise
  • 发布:2019-07-26 14:05
  • 更新:2020-05-11 20:58
  • 阅读:2981

【报Bug】nvue下uniapp模式 video 包在 swiper->swiper-item 内 无法createVideoContext

分类:nvue

nvue下uniapp模式 video 包在 swiper->swiper-item 内 无法使用 uni.createVideoContext('id',this).play();

代码如下
<template>
<view>
<swiper>
<swiper-item>
<video
ref="video"
id="myVideo"
poster="https://jita-app.oss-cn-hangzhou.aliyuncs.com/bbb.jpeg"
src="https://jita-app.oss-cn-hangzhou.aliyuncs.com/v.f10.mp4"
</swiper-item>
</swiper>
</view>
</template>

我怀疑是如果放在父子嵌套的组件 如 movable-area -> movable-view 或者 swiper->swiper-item 的里面就不行
其他 放在 view div scroll-view 内 或者他们的组合均没事

2019-07-26 14:05 负责人:无 分享
已邀请:
raise

raise (作者)

顶一下

1***@qq.com

1***@qq.com - 一只野生程序员

一模一样的问题 卧槽 忙活了一天 淦

1***@qq.com

1***@qq.com

同问createVideoContext后总是会报如下错误:
[JS Framework] Failed to execute the callback function:
TypeError: undefined is not an object (evaluating 'this.$scope.$page')
而在打印video的上下文对象时,总是,无法转成json,无法遍历;

raise

raise (作者)

解决这个问题的方法就是把video组件二次封装成自己的组件。然后通过传属性的方式去控制他

  • 1***@qq.com

    已经是这样了,组件内监听参数变化进行play等操作,但是监听到这个参数变化时,就报错了

    2020-01-07 20:23

  • 1***@qq.com

    不过有一点,我不是在当前页面的组件内使用,而是页面的组件的组件的组件里放的

    2020-01-07 20:29

  • raise (作者)

    回复 1***@qq.com: 参考我这个插件的写法 https://ext.dcloud.net.cn/plugin?id=860

    2020-01-07 20:31

  • 1***@qq.com

    回复 raise: 好巧,就是用您这个插件改的,没有大改动,还没上业务逻辑呢,我先去给您打个五星好评

    2020-01-07 20:38

  • 1***@qq.com

    NONONO 还有一种更简单的方法

    原理: uni.createVideoContext('id',this) 这个'id' 就是vidoe 元素

    如果想控制 就可以 for 循环 的时候 在 vidoe :id="' 'id' + index " 这样 每个循环出来的 video 的id

    就变成了 id1 id2 id3


    <video id="id1" @click=“play(index)” />


    如果想操作其中的某个视频元素

    就可以在 定一个函数 传index

    play(index){

    uni.createVideoContext('id'+index,this).play();

    }

    2020-03-31 12:52

BlackFish

BlackFish

手动置顶

道木樱花

道木樱花

安卓动态加载数据会跳到第一个你们有没有遇到

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