一. 可以在需要视频播放的地方弄一个视频播放的按钮, 当视频播放的时候再初始化视频组件, 保证整个应用内只有一个视频组件(视频组件的位置需要计算), 整个方法只是理论下的情况
二. 在app.js中 设置两个对象, currentVideoId(播放视频组件的id)和videoContext(当前播放视频的对象, 通过wx.createVideoContext方法获得), 在页面的js中控制, 保证video组件绑定play方法:
<video src="url" bindplay="play"></video>
在play方法中实现即可:
var id = e.currentTarget.id
if (id != null) {
if (app.currentVideoId != id) {
if (app.videoContext != null) {
app.videoContext.stop()
console.warn("暂停")
}
app.currentVideoId = id
app.videoContext = wx.createVideoContext(id)
}
}
因为currentVideoId 和videoContext是唯一的对象, 方法中播放监听事件会暂停之前的播放, 然后再赋值, 等下次video播放监听进来的时候, 会进行判断
三. 包含富文本组件的视频组件同时播放的情况
依据上面的例子, 当自定义富文本组件中包含多个video组件时也用上面的方法会产生错误, 虽然log会显示将执行视频暂停或者停止播放, 但是没有效果, 查看 视频api , 提示
根据api显示, id为video组件的id, 还有一个"Object this", 但是依据上面的api使用, 直接用id确实可以获取video对象, 但是api解释中提示, "在自定义组件下,当前组件实例的this,以 *** 作组件内 video组件", 在自定义组件中, 要加this, 所以总结: 在上面api使用中, 如果video在pages页面中, wx.createVideoContext参数只写id没有问题, 但是当video在自定义组件中, 要必须加this, 才能正确返回VideoContext对象
小程序中的 video 组件是原生组件, 默认宽度300px、高度225px,可通过wxss设置宽高。其中 src 属性默认支持MP4格式,但是实际上还可以支持其他格式。
属性主要有:
src :要播放视频的资源地址。
initial-time :指定视频初始播放位置。
danmu-list :d幕列表。
controls :是否显示默认播放控件(播放/暂停按钮、播放进度、时间)。
binderror :视频播放出错时触发。
安卓系统可以支持MP4格式的视频,苹果手机支持m3u8格式的视频。可以通过获取手机的系统,然后判断播放什么格式的视频。
参数主要包括:
brand :手机品牌;
model :手机型号;
fontSizeSetting :用户字体大小设置。以“我-设置-通用-字体大小”中的设置为准,单位 px;
pixelRatio :设备像素比。
你好。关于微信小程序把video固定在页面顶端的问题,解决方案如下:
1.video fixed布局会造成:视频移动,黑色底留下
2.flex布局,video固定高度,自适应部分用scroll-view, 代码如下:
…
.grid-box{
width: 100%
height: 100%
display: flex
flex-direction: column
}
.grid-const{width: 750rpxheight: 422rpx}
.grid-var{flex: 1}
.content{height: 100%}
以上代码可以满足需求,但是下拉页面,video还是会跟着移动
3.最终解决方案,禁止页面Page滚动:
在json配置文件中添加:“disableScroll”:true
经测试,页面效果和腾讯视频一致。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)