小米手机的play()也无法播放视频
视频videoContext play方法在安卓上无效使用wx.createVideoContext创建ctx对象,点击按钮执行ctx.play()方法,在iOS可以触发播放,在安卓上则不行。 以及,在调试工具中输出ctx对象,发现原型链上没有ctx方法。 另外,亲测: wx.createVideoContext的构造时机没问题,在onReady和在onLoad中构造都一样 视频本身没有问题,在浏览器中可以访问。 基础库版本1.7.0,微信版本6.5.22,不会是版本过低的问题。 把video-compnent的hidden改为false,也不会解决问题。 以及,重点是:上上周这样的写法是没有问题的。。。这周就不行了 wxml: [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"section tc"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"video-item"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码][代码] [代码][代码]data-id[代码][代码]=[代码][代码]"{{ video.id }}"[代码][代码] [代码][代码]catchtap[代码][代码]=[代码][代码]"handleTap"[代码][代码] [代码][代码]class[代码][代码]=[代码][代码]"video-item-discover"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]image[代码] [代码]class[代码][代码]=[代码][代码]"video-item-discover-bg"[代码] [代码]src[代码][代码]=[代码][代码]"{{ video.preview_pic_url }}"[代码] [代码]/>[代码][代码] [代码][代码]<[代码][代码]image[代码] [代码]class[代码][代码]=[代码][代码]"video-item-btn"[代码] [代码]src[代码][代码]=[代码][代码]"/images/write-question/ic-reload@3x.png"[代码] [代码]/>[代码][代码] [代码][代码]view[代码][代码]>[代码][代码][代码][代码][代码][代码] [代码][代码][代码][代码][代码][代码][代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"video-component"[代码] [代码]hidden[代码][代码]=[代码][代码]"{{ true }}"[代码][代码]>[代码][代码][代码][代码][代码][代码] [代码][代码]<[代码][代码]video[代码][代码][代码][代码][代码][代码] [代码][代码]id[代码][代码]=[代码][代码]"{{ video.id }}"[代码][代码][代码][代码][代码][代码] [代码][代码]data-id[代码][代码]=[代码][代码]"{{ video.id }}"[代码][代码][代码][代码][代码][代码] [代码][代码]controls[代码][代码]=[代码][代码]"{{ true }}"[代码][代码][代码][代码][代码][代码] [代码][代码]bindplay[代码][代码]=[代码][代码]"handleVideoPlayEvent"[代码][代码][代码][代码][代码][代码] [代码][代码]bindpause[代码][代码]=[代码][代码]"handleVideoPauseEvent"[代码][代码][代码][代码][代码][代码] [代码][代码]bindended[代码][代码]=[代码][代码]"handleVideoEndedEvent"[代码][代码][代码][代码][代码][代码] [代码][代码]bindfullscreenchange[代码][代码]=[代码][代码]"handleVideoFullScreenEvent"[代码][代码][代码][代码][代码][代码] [代码][代码]src[代码][代码]=[代码][代码]"{{ video.cdn_url }}"[代码][代码][代码][代码][代码][代码] [代码][代码]poster[代码][代码]=[代码][代码]"{{ video.preview_pic_url }}"[代码] [代码]/>[代码][代码][代码][代码][代码][代码] [代码][代码]view[代码][代码]>[代码][代码][代码][代码][代码][代码][代码][代码][代码][代码] [代码][代码]view[代码][代码]>[代码][代码][代码][代码][代码][代码][代码][代码][代码][代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"btn-area"[代码][代码]>[代码][代码][代码][代码][代码][代码][代码][代码] [代码][代码]<[代码][代码]input[代码] [代码]bindblur[代码][代码]=[代码][代码]"bindInputBlur"[代码][代码]/>[代码][代码][代码][代码][代码][代码][代码][代码] [代码][代码]<[代码][代码]button[代码] [代码]bindtap[代码][代码]=[代码][代码]"handleTap"[代码] [代码]data-id[代码][代码]=[代码][代码]"{{ Num }}"[代码][代码]>点击播放button[代码][代码]>[代码][代码][代码][代码][代码][代码][代码] [代码][代码]view[代码][代码]>[代码][代码][代码][代码][代码][代码][代码][代码][代码][代码]>[代码][代码][代码][代码][代码]index.js [代码]const config = {[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]Num: 12345,[代码][代码] [代码][代码]video: {[代码][代码] [代码][代码]id: 12345,[代码][代码] [代码][代码]preview_pic_url: [代码][代码]'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000'[代码][代码],[代码][代码] [代码][代码]cdn_url: [代码][代码]'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400'[代码][代码] [代码][代码]},[代码][代码] [代码][代码]videoContextList: [][代码][代码] [代码][代码]},[代码][代码] [代码][代码]onLoad () {[代码][代码] [代码][代码]const { Num } = [代码][代码]this[代码][代码].data;[代码][代码] [代码][代码]// this.videoContext = wx.createVideoContext(String(Num));[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]videoContextList: [[代码][代码] [代码][代码]{ id: Num, ctx: wx.createVideoContext(String(Num))}[代码][代码] [代码][代码]][代码][代码] [代码][代码]});[代码][代码] [代码][代码]},[代码][代码] [代码][代码]getVideoContext(id) {[代码][代码] [代码][代码]const { videoContextList } = [代码][代码]this[代码][代码].data;[代码][代码] [代码][代码]// 对每一个video都按照单例模式设置[代码][代码] [代码][代码]return[代码] [代码]videoContextList.find(video => video.id === id).ctx || wx.createVideoContext(String(id));[代码][代码] [代码][代码]},[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 点击图片开始播放[代码][代码] [代码][代码]* @param {*} event[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]handleTap(event) {[代码][代码] [代码][代码]const { currentTarget: { dataset: { id }}} = event;[代码][代码] [代码][代码]const ctx = [代码][代码]this[代码][代码].getVideoContext(id);[代码][代码] [代码][代码]console.log(ctx);[代码][代码] [代码][代码]// 点击图片时,必然是非全屏状态,此时必然没有播放,直接play即可[代码][代码] [代码][代码]ctx.play();[代码][代码] [代码][代码]},[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 视频播放事件处理函数[代码][代码] [代码][代码]* 开始播放时自动全屏[代码][代码] [代码][代码]* @param {*} event 播放[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]handleVideoPlayEvent(event) {[代码][代码] [代码][代码]const { currentTarget: { dataset: { id }}} = event;[代码][代码] [代码][代码]const ctx = [代码][代码]this[代码][代码].getVideoContext(id);[代码][代码] [代码][代码]console.log(ctx);[代码][代码] [代码][代码]ctx.requestFullScreen();[代码][代码] [代码][代码]},[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 视频暂停事件处理函数[代码][代码] [代码][代码]* @param {*} event 暂停[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]handleVideoPauseEvent(event) {[代码][代码] [代码][代码]console.log(event);[代码][代码] [代码][代码]},[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 全屏事件处理函数[代码][代码] [代码][代码]* @param {*} event 事件[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]handleVideoFullScreenEvent(event) {[代码][代码] [代码][代码]console.warn([代码][代码]'handleVideoFullScreenEvent'[代码][代码]);[代码][代码] [代码][代码]const { detail: { fullScreen }, target: { dataset: { id }} } = event;[代码][代码] [代码][代码]const ctx = [代码][代码]this[代码][代码].getVideoContext(id);[代码][代码] [代码][代码]console.log(ctx);[代码][代码] [代码][代码]// 退出全屏时,若正在播放,则自动暂停,且跳到起始位置[代码][代码] [代码][代码]if[代码] [代码](!fullScreen) {[代码][代码] [代码][代码]ctx.seek(0);[代码][代码] [代码][代码]ctx.pause();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 视频播放到末尾的处理函数[代码][代码] [代码][代码]* @param {*} event 自然播放结束[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]handleVideoEndedEvent(event) {[代码][代码] [代码][代码]console.log(event);[代码][代码] [代码][代码]}[代码][代码]};[代码] [代码]Page(config);[代码]wxss样式 [代码].video-item {[代码][代码] [代码][代码]width: 100%;[代码][代码] [代码][代码]height: 100%;[代码][代码]}[代码][代码].video-item video {[代码][代码] [代码][代码]width: 100%;[代码][代码] [代码][代码]height: 100%;[代码][代码]}[代码][代码].video-item .video-item-discover{[代码][代码] [代码][代码]position: relative;[代码][代码] [代码][代码]width:100%;[代码][代码] [代码][代码]height:100%;[代码][代码]}[代码][代码].video-item .video-item-discover .video-item-btn{[代码][代码] [代码][代码]position: absolute;[代码][代码] [代码][代码]width: 70rpx;[代码][代码] [代码][代码]height: 70rpx;[代码][代码] [代码][代码]top: 50%;[代码][代码] [代码][代码]left: 50%;[代码][代码] [代码][代码]transform: translate(-50%, -50%);[代码][代码] [代码][代码]z-index: 100;[代码][代码]}[代码][代码].video-item .video-item-discover .video-item-discover-bg{[代码][代码] [代码][代码]width: 100%;[代码][代码] [代码][代码]height: 100%;[代码][代码] [代码][代码]filter: brightness(0.6);[代码][代码]}[代码][代码].section.tc {[代码][代码] [代码][代码]display: flex;[代码][代码] [代码][代码]align-items: center;[代码][代码] [代码][代码]justify-content: center;[代码][代码] [代码][代码]flex-wrap: wrap;[代码][代码]}[代码][代码].section.tc .video-item .video-item-discover{[代码][代码] [代码][代码]width: 200px;[代码][代码] [代码][代码]height: 200px;[代码][代码] [代码][代码]flex-basis: 100vw;[代码][代码] [代码][代码]margin: 0 auto;[代码][代码]}[代码]
2018-08-21我也遇到了,android系统下videoContext.play()不能播放, IOS和工具都可以播放。
videoContext.play()在真机上无效videoContext.play()在开发工具上可以使用,在设备上不会播放,而且在没有设置show-center-play-btn的情况下中间的播放按钮也会消失,在安卓设备上的poster属性也无法生效
2018-08-21wx.seekBackgroundAudio() 这个方法真机无效,暂时想的解决办法就是把音频停止掉,重新来播放一个音频并且指定的开始播放位置。。 等以后官方什么时候想起这个问题再改吧。
getBackgroundAudioManager()三端表现不同 安卓报错上次已经问了 但是 还是没给我回应 三端表现不同 安卓端在设置音乐进度 wx.seekBackgroundAudio()时报错 但不影响播放 [图片]
2018-08-13刚特意试了下,我怎么感觉现在的抖动比去年的抖动小一些了。 我的 6 plus 去年开发我公司那个小程序,明显感觉获得焦点和失去焦点时字会上下抖很多,文字还闪烁一下。 现在只会抖一点点,闪烁也是多点击操作几次才会出现一下。。。。。 [图片]
input输入框问题输入框在获取焦点和失去焦点时里面的字为什么会闪一下,有大神知道怎么解决吗
2018-07-30兄dei ,你走错片场啦。( ´・ω・)ノ(._.`)
微信登入,请官方人员看看呗我换了一部手机微信就登不上了,账号密码都是正确的,然后找朋友协助登入也没用。 不知道去哪找回账号,还请官方人员看看。
2018-07-30楼上的方案解释清楚了,这种需求的做法一般是input 显示但是不可见,需要显示的内容用6个<view>表示就好了。 点击任意一个<view>让焦点始终在那一个input上就好了。 输入一个文字,<view>中追加一个数字就好了。 如果你的输入的内容为不可见的就更加方便了,输入一个数字<view>中间放个 “●” 就好了。 input最后做验证再用。 加油~~
小程序多个输入框自动聚焦时,键盘在切换的时候出现闪烁的情况如下在身份证后6位的输入框中,没输入1位代码会自动的去切换输入框的焦点,这个时候出现虚拟键盘不停的下去又弹起来,体验的效果很不好,这个有解决的办法吗,还是小程序的设计bug,希望有人能帮忙看下,谢谢了! [图片]
2018-07-27明明是微信方的问题,还提示我说我的小程序维护中,让开发者更新后尽快恢复。他还说是我在维护, 吓得我。 [图片]
小程序是不是出问题了..所有小程序都打不开了。只要是新搜索出来的小程序,就是以前没用过的小程序,打开后都报107的错误...
2018-07-26题主:那个人感冒了应该吃什么药治疗。 小程序官方:那个人感冒了。
textarea的placeholder文字层级太高了貌似很久很久之前网上讨论的老问题了,为什么真机上textarea的层级那么高,我弹出了一个弹出框,z-index设置9999,textarea的z-index设置为0,就这样还不行,textarea的文字还是会比弹出框的层级高,除了隐藏textarea,没有别的办法了吗 最新的api,可以使用bind:tap,catch:tap,这些,确实很方便,就像vue的v-指令一样带个规范点的前缀,但是为什么文本框的bindinput,和其他的一些组件的事件却无法使用bind: 呢,用了会报错。
2018-07-18冤枉哦, 还真是这个, 这也藏得太好了吧。
关于授权按钮样式边框去不掉的问题因为geUserInfo接口改变,所以新增了一个按钮,现在功能是出现了,但是那个按钮的样式去掉边框一直调不了,求解 [图片] 放上wxml: [图片] css: [图片] 打开调试工具,发现按钮的原本的样式也没这个,不知道咋回事求大神解答 [图片]
2018-06-15我也遇到这个问题, 开发工具扫描的小程序码,出来的option.scene = 1011,捉急
开发者工具编译的时候选择通过扫描二维码编译使用开发者工具编译的时候选择【通过二维码编译】,然后选择【小程序码】,在app.js的onLaunch中打印的场景值是options.scene = 1011。但是通过手机扫描小程序码打印出来的场景值是1047。开发者工具提供的【通过二维码编译】既然能扫小程序码,为什么打印出来的场景值是1011呢?在我看来,要么【通过二维码编译】只能扫【二维码】不能扫【小程序码】、要么扫什么码就打印什么样的场景值。
2018-06-14