提交 139a1d63 authored 作者: 王鹏飞's avatar 王鹏飞

remore: 移除无用文件

上级 a479a04d
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
"pages/login/phone", "pages/login/phone",
"pages/login/password", "pages/login/password",
"pages/outSite/outSite", "pages/outSite/outSite",
"pages/videoPlayer/show",
"pages/learnSystem/home/home", "pages/learnSystem/home/home",
"pages/learnSystem/courseSquare/courseSquare", "pages/learnSystem/courseSquare/courseSquare",
"pages/learnSystem/courseContent/courseContent", "pages/learnSystem/courseContent/courseContent",
......
// pages/videoPlayer/AllBugPages/page1/bugPage1.js
const util = require('../../../../utils/util.js')
Page({
data: {
isVideoShow: false,
currentTime: 0,
totalTime: 0,
video: {
src: ''
}
},
_audio: null,
_video: null,
playVideo: false,
playAudio: false,
onHide: function () { this.videoPause() },
onReady: function () {
this.setData({ 'isVideoShow': true })
this.setData({ 'video.src': 'https://cd15-c120-1.play.bokecc.com/flvs/C67C24BF493FE39E/2016-03-29/CD319C8C0265B11A9C33DC5901307461-20.m3u8?t=1536297247&key=2467F8448E028A1614E354B75A457951' })
setTimeout(() => {
this._video = wx.createVideoContext('video-play')
}, 1000)
this._audio = wx.createAudioContext('audio-play')
},
audioPlay: function () { this._audio.play(); this.playAudio = true; this.playVideo = false; },
videoPlay: function () { this._video.play(); this.playAudio = false; this.playVideo = true; },
audioPause: function () { this._audio.pause(); this.playAudio = false; },
videoPause: function () { this._video.pause(); this.playVideo = false; },
videoShowOrHide: function () { this.setData({ 'isVideoShow': !this.data.isVideoShow }) },
changeVideo: function () { this.setData({ 'video.src': 'https://pd4t7ae3m.bkt.clouddn.com/test.mp4' }); },
timeUpdate: function (e) {
let _data = this.data, _status = _data.status, _detail = e.detail, _obj = {}
console.log('视频时间变化', parseInt(_detail.currentTime))
_obj.currentTime = parseInt(_detail.currentTime)
_obj.totalTime = parseInt(_detail.duration)
this.setData({ 'ctrlBar.progress': _obj.currentTime / _obj.totalTime * 100 + '%' });
this.setData({ 'currentTime': util.durationToTimeString(_obj.currentTime) });
this.setData({ 'totalTime': util.durationToTimeString(_obj.totalTime) })
},
/**
* 第一种情况:
* 在播放音视频时,打开预览大图,会暂停播放音视频。
*/
viewImage1: function () {
let _ = this
wx.previewImage({
urls: [
'https://pd4t7ae3m.bkt.clouddn.com/imgs-test1.jpg',
'https://pd4t7ae3m.bkt.clouddn.com/imgs-test2.jpg',
'https://pd4t7ae3m.bkt.clouddn.com/imgs-test3.jpg'
],
current: 0,
success: () => {
_.playAudio && _._audio.play()
_.playVideo && _._video.play()
}
})
_.playAudio && _._audio.play()
_.playVideo && _._video.play()
},
/**
* 第二种情况:
* 音视频播放过程中,在打开预览图片前,手动调用方法暂停播放,但是关闭预览图片后,发现问题。
* android 视频播放未暂停,ios 正常
*/
viewImage2: function () {
let _ = this
this.audioPause()
this.videoPause()
wx.previewImage({
urls: [
'https://pd4t7ae3m.bkt.clouddn.com/imgs-test1.jpg',
'https://pd4t7ae3m.bkt.clouddn.com/imgs-test2.jpg',
'https://pd4t7ae3m.bkt.clouddn.com/imgs-test3.jpg'
],
current: 0,
success: () => {}
})
}
})
\ No newline at end of file
<!--pages/videoPlayer/AllBugPages/page1/bugPage1.wxml-->
<button bindtap='viewImage1'>点击预览图片-方法1</button>
<button bindtap='viewImage2'>点击预览图片-方法2</button>
<button bindtap='changeVideo'>视频切换</button>
<button bindtap='audioPlay'>音频播放</button>
<button bindtap='audioPause'>音频暂停</button>
<button bindtap='videoPlay'>视频播放</button>
<button bindtap='videoPause'>视频暂停</button>
<button bindtap='videoShowOrHide'>视频显示/隐藏</button>
<view class='start-time'>播放时间:{{currentTime}}</view>
<view class='end-time'>总时间:{{totalTime}}</view>
<audio id='audio-play' src='https://pd4t7ae3m.bkt.clouddn.com/audio-test.mp3'></audio>
<view style='{{isVideoShow ? "": "display:none"}}'>
<video id='video-play' style="width: 750rpx;" src='{{video.src}}' bindtimeupdate='timeUpdate' show-center-play-btn='{{false}}' controls='{{false}}'></video>
</view>
\ No newline at end of file
/* pages/videoPlayer/AllBugPages/page1/bugPage1.wxss */
.start-time { float: left; margin-left: 20rpx; }
.end-time { float: right; margin-right: 20rpx; }
\ No newline at end of file
// pages/videoPlayer/AllBugPages/test.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
<!--pages/videoPlayer/AllBugPages/test.wxml-->
<text>pages/videoPlayer/AllBugPages/test.wxml</text>
/* pages/videoPlayer/AllBugPages/test.wxss */
\ No newline at end of file
/**
* 创建一个audio对象
* @param {[string]} src [audio组件对应音频源]
* @param {[object]} _that [当前组件所在页面对应this]
*/
var Audio = function (src, _that) {
if (!(this instanceof Audio)) {
return new Audio(src, _that)
} else {
this._audio = this.init(src, _that)
this.currentTime = 0 // 当前时间
this.totalTime = 0 // 总时间
this.rateIndex = 2 // 取值为 RATE中的 下标 0,1,2,3,4
}
}
/**
* audio对象创建后,提供的方法
* init - 初始化方法
* play - 视频播放
* pause - 视频暂停
* stop - 视频停止
* seek - 视频跳到某个位置再播放
* rate - 视频播放速率调整
*
*/
Audio.prototype = {
constructor: Audio,
RATE: ['0.5', '0.8', '1.0', '1.25', '1.5'],
init: function (src, _that) {
let _auCtx = wx.createInnerAudioContext()
_auCtx.autoplay = false
_auCtx.src = src
/* 使用绑定事件,代替wxml中的事件绑定 */
_auCtx.onTimeUpdate(() => {
let e = {
detail: { currentTime: _auCtx.currentTime, duration: _auCtx.duration }
}
_that.timeUpdate(e)
})
_auCtx.onPlay(() => {
_that.beginPlayVA()
})
_auCtx.onError((e) => {
_that.playError(e)
})
_auCtx.onEnded(() => {
_that.playEnded
})
return _auCtx
},
play: function () {
this._audio.play()
},
pause: function () {
this._audio.pause()
},
stop: function () {
this._audio.stop()
},
seek: function (time) {
this._audio.seek(time)
},
fastSlow15: function (timeStr) {
this._audio.seek(this.currentTime + parseInt(timeStr))
},
rate: function () {
this.rateIndex++
if (this.rateIndex > 4) this.rateIndex = 0
this._audio.playbackRate(parseFloat(this.RATE[this.rateIndex]))
}
}
module.exports = {
Audio: Audio
}
<template name='contentAudio'>
<view class='content-audio'
style='{{status.isSet && status.isAudio ? "display: none;" : "" }} {{status.isImages && status.isAudio ? "display: none;" : "" }} {{status.isVideo ? "display: none;" : "" }}'
>
<image src='./contentAudio/icons/loading_small.gif' class='loading-image {{status.imagesLoaded && "none"}}' mode='aspectFit'/>
<image wx:if='{{image.imgUrls[image.current]}}' src='{{image.imgUrls[image.current]}}' class='slide-image' mode='aspectFill' bindload='imagesLoaded'/>
<view wx:if='{{!image.imgUrls[image.current]}}' class='slide-image'>本课程暂无PPT</view>
<!-- <audio id="my-audio" class='my-audio' src='{{audio.src}}' controls='{{false}}' bindtimeupdate='timeUpdate' bindplay='beginPlayVA' binderror='playError' bindended='playEnded'></audio> -->
</view>
</template>
\ No newline at end of file
.content-audio { position: absolute; z-index: 0; top: 0; left: 0; right: 0; bottom: 300rpx; background: #313131; }
.content-audio .slide-image { position: absolute; top: 50%; left: 50%; display: block; width: 750rpx; height: 422rpx; color: #7d7d7d; font-size: 30rpx; text-align: center; line-height: 450rpx; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
/* 图片过大时,都要先加载再显示 */
.content-audio .loading-image { position: absolute; z-index: 1; top: 50%; left: 50%; display: block; width: 750rpx; height: 50rpx; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background: transparent; }
.content-audio .loading-image.none { display: none; }
\ No newline at end of file
<template name='contentImages'>
<view class='content-images'>
<block wx:if='{{image.imgUrls.length}}'>
<swiper class='swiper-images' bindchange='imageSelectIndexUpdate' current='{{image.current}}'>
<block wx:for='{{image.imgUrls}}' wx:key='{{index}}'>
<swiper-item>
<image src='{{item}}' class='slide-image' mode='aspectFit' bindtap='showBigImage'/>
</swiper-item>
</block>
</swiper>
</block>
<block wx:else>
<view class='swiper-images'><view class='slide-image'>本课程暂无PPT</view></view>
</block>
</view>
</template>
.content-images { position: absolute; z-index: 1; top: 0; left: 0; right: 0; bottom: 300rpx; background: #313131; }
.content-images .swiper-images { position: absolute; top: 50%; width: 750rpx; height: 422rpx; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.content-images .swiper-images .slide-image { display: block; width: 750rpx; height: 422rpx; color: #7d7d7d; font-size: 30rpx; text-align: center; line-height: 450rpx; background: #313131; }
/* 图片过大时,都要先加载再显示 */
.content-images .swiper-images .loading-image { position: absolute; z-index: 1; top: 50%; left: 50%; display: block; width: 750rpx; height: 50rpx; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background: transparent; }
.content-images .swiper-images .loading-image.none { display: none; }
\ No newline at end of file
<template name='contentVideo'>
<!-- 这里加 这么多判断原因,video组件在真机上测试,一定在最上层,其他任何元素都挡不住,只能先隐藏,需要时再显示 -->
<view class='content-video'
style='{{status.isSet && status.isVideo ? "display: none;" : "" }} {{status.isImages && status.isVideo ? "display: none;" : "" }} {{status.isAudio ? "display: none;" : "" }} {{chapterList.isShow && status.isVideo ? "display: none;" : "" }} {{ status.isLoading ? "display: none": "" }}'
>
<video id='my-video' class='my-video' src='{{video.src}}' show-center-play-btn='{{false}}' controls='{{false}}' bindtimeupdate='timeUpdate' bindfullscreenchange='beginAndOutFullScreen' bindpause='beginPauseVA' bindplay='beginPlayVA' binderror='playError' bindended='playEnded' autoplay='{{true}}'></video>
</view>
</template>
\ No newline at end of file
.content-video { position: absolute; top: 0; left: 0; right: 0; bottom: 300rpx; background: #313131; }
.content-video .my-video { position: absolute; top: 50%; width: 750rpx; height: 422rpx; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
\ No newline at end of file
/**
* 创建一个video对象
* @param {[string]} selectorId [video组件id对应选择器字符串]
*/
var Video = function (selectorId) {
if (!(this instanceof Video)) {
return new Video(selectorId);
} else {
this._video = this.init(selectorId);
this.currentTime = 0; // 当前时间
this.totalTime = 0; // 总时间
this.rateIndex = 2; // 取值为 RATE中的 下标 0,1,2,3,4
}
}
/**
* video对象创建后,提供的方法
* init - 初始化方法
* play - 视频播放
* pause - 视频暂停
* stop - 视频停止
* seek - 视频跳到某个位置再播放
* rate - 视频播放速率调整
*
*/
Video.prototype = {
constructor: Video,
RATE: ['0.5', '0.8', '1.0', '1.25', '1.5'],
init: function (selectorId) {
return wx.createVideoContext(selectorId);
},
play: function () {
this._video.play();
},
pause: function () {
this._video.pause();
},
stop: function () {
this._video.stop();
},
seek: function (time) {
this._video.seek(time);
},
fastSlow15: function (timeStr) {
this._video.seek(this.currentTime + parseInt(timeStr));
},
rate: function () {
this.rateIndex ++;
if (this.rateIndex > 4) this.rateIndex = 0;
this._video.playbackRate(parseFloat(this.RATE[this.rateIndex]));
}
}
module.exports = {
Video: Video
}
<template name='controlBar'>
<view class='control-bar'>
<view class='ctrl {{status.isImages && "ppt"}} {{status.isAudio && "audio"}} {{status.isVideo && "normal"}}'>
<image class='img see-audio' src='./controlBar/icons/see-audio.png' mode='scaleToFill' bindtap='showContentAudio'></image>
<image class='img see-video' src='./controlBar/icons/see-video.png' mode='scaleToFill' bindtap='showContentVideo'></image>
<image class='img see-ppt' src='./controlBar/icons/see-ppt.png' mode='scaleToFill' bindtap='openContentImages'></image>
<image class='img see-notppt' src='./controlBar/icons/see-notppt.png' mode='scaleToFill' bindtap='closeContentImages'></image>
<!-- <image class='img see-set' src='./controlBar/icons/see-set.png' mode='scaleToFill'></image> -->
</view>
<view class='control-progress' bindtouchstart='tapToSeek'>
<view class='progress-line'>
<view class='cache-line' style='width: 100%;'></view>
<view class='current-line' style='width: {{ctrlBar.progress}};'></view>
</view>
<view class='progress-time'>
<view class='current-time'>{{ctrlBar.currentTime}}</view>
<view class='total-time'>{{ctrlBar.totalTime}}</view>
</view>
</view>
<view class='control-btns'>
<view class='left-btn' bindtap='openSelectChapterList'>
<image class='img normal' src='./controlBar/icons/left-btn-normal.png' mode='scaleToFill'></image>
<image class='img active' src='./controlBar/icons/left-btn-active.png' mode='scaleToFill'></image>
<view class='text'>章节</view>
</view>
<view class='main-btns'>
<view class='btn-back'>
<image class='img' src='./controlBar/icons/btn-back.png' mode='scaleToFill' data-id='{{chapterList.prevVideo.id}}' data-hasVA='{{chapterList.prevVideo.time}}' data-name='{{chapterList.prevVideo.name}}' bindtap='prevChapter' data-type='{{chapterList.nextVideo.videoType}}' ></image>
</view>
<view class='opt'>
<image class='img init-page {{initVAFlag ? "" : "none"}}' src='./controlBar/icons/loading_small.gif' mode='aspectFit'></image>
<image class='img play {{initVAFlag ? "none" : ""}} {{!ctrlBar.isPlay ? "" : "none"}}' src='./controlBar/icons/btn-play.png' mode='scaleToFill' bindtap='playVA'></image>
<image class='img pause {{initVAFlag ? "none" : ""}} {{!ctrlBar.isPlay ? "none" : ""}}' src='./controlBar/icons/btn-pause.png' mode='scaleToFill' bindtap='pauseVA'></image>
</view>
<view class='btn-front'>
<image class='img' src='./controlBar/icons/btn-front.png' mode='scaleToFill' data-id='{{chapterList.nextVideo.id}}' data-hasVA='{{chapterList.nextVideo.time}}' data-name='{{chapterList.nextVideo.name}}' data-type='{{chapterList.nextVideo.videoType}}' bindtap='nextChapter'></image>
</view>
</view>
<view class='right-btn' bindtap='openSetContent'>
<image class='img' src='./controlBar/icons/see-set.png' mode='scaleToFill'></image>
<view class='text'>设置</view>
</view>
</view>
</view>
</template>
\ No newline at end of file
.control-bar { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; height: 300rpx; background: #3f3f3f; }
/* 内容 控制区 控制看视频、音频还是PPT */
.control-bar .ctrl { position: absolute; top: -90rpx; width: 100%; text-align: center; }
.control-bar .ctrl .img { display: inline-block; vertical-align: middle; margin: 0 18rpx; padding: 20rpx; }
.control-bar .ctrl .img.see-audio { width: 29rpx; height: 42rpx; }
.control-bar .ctrl .img.see-video { width: 46rpx; height: 29rpx; }
.control-bar .ctrl .img.see-ppt { width: 33rpx; height: 41rpx; }
.control-bar .ctrl .img.see-notppt { width: 60rpx; height: 44rpx; }
.control-bar .ctrl.normal .img.see-video, .control-bar .ctrl.normal .img.see-notppt { display: none; }
.control-bar .ctrl.audio .img.see-audio, .control-bar .ctrl.audio .img.see-notppt { display: none; }
.control-bar .ctrl.ppt .img.see-ppt, .control-bar .ctrl.ppt .img.see-audio, .control-bar .ctrl.ppt .img.see-video { display: none; }
.control-bar .ctrl.ppt .img.see-notppt { display: inline-block; }
/* 进度条+时间 */
.control-bar .control-progress { margin: 7rpx 17rpx 0 17rpx; padding-top: 30rpx; overflow: hidden; }
.control-bar .control-progress .progress-line { position: relative; width: 100%; height: 4rpx; background: #898989; }
.cache-line { position: absolute; z-index: 1; left: 0; top: 0; height: 100%; background: #b5b5b5; }
.current-line { position: absolute; z-index: 2; left: 0; top: 0; height: 100%; background: #d3a010; }
.control-bar .control-progress .progress-time { width: 100%; overflow: hidden; }
.control-bar .control-progress .progress-time .current-time { float:left; height: 45rpx; font-size: 22rpx; color: #c9c9c9; line-height: 45rpx; }
.control-bar .control-progress .progress-time .total-time { float:right; height: 45rpx; font-size: 22rpx; color: #c9c9c9; line-height: 45rpx; }
/* 控制按钮 */
.control-btns { position: relative; margin: 25rpx 17rpx 0 17rpx; }
.control-btns .left-btn { float: left; margin: 20rpx 0 0 40rpx; padding: 10rpx 20rpx; }
.control-btns .left-btn .active, .control-btns .left-btn.on .normal { display: none; }
.control-btns .left-btn .normal, .control-btns .left-btn.on .active { display: block; }
.control-btns .left-btn .img { margin: 0 auto; width: 54rpx; height: 47rpx; }
.control-btns .left-btn .text { margin-top: 10rpx; font-size: 22rpx; line-height: 25rpx; color: #fff; text-align: center; }
.control-btns .right-btn { float: right; margin: 20rpx 40rpx 0 0; padding: 10rpx 20rpx; }
.control-btns .right-btn .img { margin: 0 auto; width: 47rpx; height: 47rpx; }
.control-btns .right-btn .text { margin-top: 10rpx; font-size: 22rpx; line-height: 25rpx; color: #fff; }
.control-btns .main-btns { position: absolute; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); }
.control-btns .main-btns .btn-back, .control-btns .main-btns .opt, .control-btns .main-btns .btn-front { display: inline-block; vertical-align: middle; overflow: hidden; }
.control-btns .main-btns .btn-back .img { display: block; width: 33rpx; height: 34rpx; }
.control-btns .main-btns .opt .img { display: block; margin: 0 54rpx; width: 121rpx; height: 120rpx; }
.control-btns .main-btns .opt .img.init-page { display: block; margin: 0 54rpx; width: 121rpx; height: 50rpx; padding: 35rpx 0; }
.control-btns .main-btns .opt .img.none { display: none; }
.control-btns .main-btns .btn-front .img { display: block; width: 32rpx; height: 34rpx; }
<template name='noSupport'>
<view class='no-support'>
<view class='text'>本课程暂不支持手机端播放</view>
</view>
</template>
\ No newline at end of file
.no-support { position: absolute; top: 0; left: 0; right: 0; bottom: 300rpx; background: #535353; }
.no-support .text { position: absolute; top: 50%; left: 50%; color: #7d7d7d; font-size: 30rpx; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
\ No newline at end of file
<template name='pageLoading'>
<view class='page-loading'>
<image src='./pageLoading/icons/loading_small.gif' class='loading-image' mode='aspectFit'/>
<view class='text'>内容加载中</view>
</view>
</template>
\ No newline at end of file
.page-loading { position: absolute; z-index: 10; top: 0; left: 0; right: 0; bottom: 0; background: #313131; }
.page-loading .loading-image { position: absolute; z-index: 1; top: 50%; left: 50%; display: block; width: 750rpx; height: 50rpx; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background: transparent; }
.page-loading .text { position: absolute; z-index: 1; top: 55%; left: 50%; display: block; width: 750rpx; text-align: center; font-size: 20rpx; color: #fff; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background: transparent; }
\ No newline at end of file
<template name='selectChapterList'>
<view class='select-chapter-list' style='{{!chapterList.isShow && "display:none;"}}'>
<view class='bg' bindtap='closeSelectChapterList'></view>
<scroll-view scroll-y class="content">
<block wx:for='{{chapterList.course}}' wx:key='{{index}}' wx:for-index='index'>
<view class='content-group'>
<view class='title'>{{item.title}}</view>
<block wx:for='{{item.chapters}}' wx:key='{{index1}}' wx:for-item="item1" wx:for-index='index1'>
<view class='body {{item1.id === chapterList.currentChapterId && "on"}}'>
<view class='name' data-id='{{item1.id}}' data-hasVA='{{item1.time}}' data-name='{{item1.name}}' bindtap='jumpToOtherVA' data-index='{{index}}' data-index1='{{index1}}' data-type='{{item1.videoType}}'>
{{item1.name}}
<view class='time'>{{item1.time}}</view>
</view>
</view>
</block>
</view>
</block>
</scroll-view>
</view>
</template>
\ No newline at end of file
.select-chapter-list { position: fixed; z-index: 10; top: 0; bottom: 0; left: 0; right: 0; }
.select-chapter-list .bg { position: absolute; z-index: 1; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.3); }
.select-chapter-list .content { position: absolute; z-index: 2; width: 750rpx; bottom: 0; top: 418rpx; overflow: auto; background-color: #eee; padding: 33rpx 0; }
.select-chapter-list .content .content-group { padding: 0 26rpx; }
.select-chapter-list .content .content-group.no-child { margin-bottom: 20rpx; }
.select-chapter-list .content .content-group .title { position: relative; padding: 20rpx 24rpx; color: #313131; font-size: 30rpx; line-height: 40rpx; background: #e5e5e5; }
.select-chapter-list .content .content-group .body { position: relative; padding: 0 24rpx; font-size: 30rpx; line-height: 42rpx; color: #505050; }
.select-chapter-list .content .content-group .body.on .name { color: #b2183e; }
.select-chapter-list .content .content-group .body .name { padding: 20rpx 70rpx 20rpx 40rpx; border-left: 2rpx solid #c9c9c9; }
.select-chapter-list .content .content-group .body .name:before { width: 30rpx; height: 30rpx; border-radius: 32rpx; border:4rpx solid #c9c9c9;
background: #e5e5e5; position: absolute; left: 6rpx; top: 20rpx; content: ""; display: block; z-index: 10; }
.select-chapter-list .content .content-group .body .name .time { position: absolute; right: 16rpx; top: 20rpx; }
/* .play-chapter-progress{position:absolute;left:7px;top:8px;z-index:60;display:none\0;}
.play-chapter .play-prog{position:absolute;top:8px;left:7px;z-index:10;} */
\ No newline at end of file
<template name='setContent'>
<view class='set-content'>
<view class='content'>
<view class='progress-time'>
<view class='time current-time'>{{ctrlBar.currentTime}}</view><view class='time'>/</view><view class='time total-time'>{{ctrlBar.totalTime}}</view>
</view>
<view class='ctrl-time-pos'>
<view class='skip-head {{ctrlBar.jumpFlag ? "on" : ""}}' bindtouchend='jumpHead'>
<image class='img normal' src='./setContent/icons/jump-normal.png' mode='scaleToFill'></image>
<image class='img active' src='./setContent/icons/jump-active.png' mode='scaleToFill'></image>
<view class='text'>跳过片头</view>
</view>
<image class='img slow-15s' src='./setContent/icons/slow-15s.png' mode='scaleToFill' bindtouchend='slow15s'></image>
<image class='img fast-15s' src='./setContent/icons/fast-15s.png' mode='scaleToFill' bindtouchend='fast15s'></image>
<view class='speed-rate' bindtouchend='setRate'>
<view class='rate'>{{ctrlBar.curRate}}</view>
<view class='text'>倍速播放</view>
</view>
</view>
</view>
<image class='back' src='./setContent/icons/back.png' mode='scaleToFill' bindtouchend='closeSetContent'></image>
</view>
</template>
\ No newline at end of file
.set-content { position: absolute; z-index: 2; top: 0; left: 0; right: 0; bottom: 300rpx; background: #eeeeee; }
.set-content .back { position: absolute; right: 40rpx; bottom: 30rpx; padding: 20rpx; width: 40rpx; height: 40rpx; }
.set-content .content { position: absolute; top: 50%; width: 100%; -webkit-transform: translateY(-50%); transform: translateY(-50%); }
/* 显示时间 */
.set-content .content .progress-time { font-size: 86rpx; line-height: 100rpx; font-weight: 700; color: #313131; text-align: center; }
.set-content .content .progress-time .time { display: inline-block; vertical-align: middle; }
.set-content .content .progress-time .current-time { color: #b2183e; }
/* 其他控制 */
.set-content .content .ctrl-time-pos { margin-top: 100rpx; text-align: center; color: #313131; }
.set-content .content .ctrl-time-pos .skip-head { display: inline-block; vertical-align: middle; margin-right: 20rpx; }
.set-content .content .ctrl-time-pos .skip-head .active, .set-content .content .ctrl-time-pos .skip-head.on .normal { display: none; }
.set-content .content .ctrl-time-pos .skip-head .normal, .set-content .content .ctrl-time-pos .skip-head.on .active { display: block; }
.set-content .content .ctrl-time-pos .skip-head .img { margin: 4rpx auto; width: 32rpx; height: 32rpx; }
.set-content .content .ctrl-time-pos .skip-head .text { margin-top: 15rpx; font-size: 22rpx; line-height: 30rpx; }
.set-content .content .ctrl-time-pos .img { display: inline-block; vertical-align: middle; margin: 0 20rpx; width: 118rpx; height: 111rpx; }
.set-content .content .ctrl-time-pos .speed-rate { display: inline-block; vertical-align: middle; margin-left: 20rpx; }
.set-content .content .ctrl-time-pos .speed-rate .rate { font-size: 32rpx; line-height: 40rpx; }
.set-content .content .ctrl-time-pos .speed-rate .text { margin-top: 10rpx; font-size: 22rpx; line-height: 30rpx; }
\ No newline at end of file
差异被折叠。
{
"navigationBarBackgroundColor": "#3f3f3f",
"navigationBarTextStyle": "white",
"navigationBarTitleText": "学习系统",
"backgroundColor": "#535353",
"disableScroll": true
}
<!--pages/videoPlayer/show.wxml-->
<import src='contentAudio/contentAudio.wxml' />
<import src='contentVideo/contentVideo.wxml' />
<import src='contentImages/contentImages.wxml' />
<import src='pageLoading/pageLoading.wxml' />
<import src='noSupport/noSupport.wxml' />
<import src='setContent/setContent.wxml' />
<import src='controlBar/controlBar.wxml' />
<import src='selectChapterList/selectChapterList.wxml' />
<block wx:if='{{status.isLoading}}'>
<template is='pageLoading'></template>
</block>
<block wx:if='{{status.isSupport}}'>
<template is='contentAudio' data='{{status, audio, image, ctrlBar}}'></template>
<template is='contentVideo' data='{{status, video, chapterList, ctrlBar}}'></template>
<block wx:if='{{status.isSet}}'>
<template is='setContent' data='{{ctrlBar}}'></template>
</block>
<block wx:elif='{{status.isImages}}'>
<template is='contentImages' data='{{status, image}}'></template>
</block>
</block>
<block wx:else>
<template is='noSupport'></template>
</block>
<template is='controlBar' data='{{status, video, ctrlBar, chapterList, initVAFlag}}'></template>
<template is='selectChapterList' data='{{status, chapterList}}'></template>
/* pages/videoPlayer/show.wxss */
@import "contentAudio/contentAudio.wxss";
@import "contentVideo/contentVideo.wxss";
@import "contentImages/contentImages.wxss";
@import "pageLoading/pageLoading.wxss";
@import "noSupport/noSupport.wxss";
@import "setContent/setContent.wxss";
@import "controlBar/controlBar.wxss";
@import "selectChapterList/selectChapterList.wxss";
\ No newline at end of file
...@@ -90,12 +90,6 @@ ...@@ -90,12 +90,6 @@
"query": "", "query": "",
"scene": null "scene": null
}, },
{
"name": "pages/videoPlayer/show",
"pathName": "pages/videoPlayer/show",
"query": "cid=6549489626027917312&sid=6552021107166150656&vid=6414742983802880000&type=3",
"scene": null
},
{ {
"name": "pages/course/player", "name": "pages/course/player",
"pathName": "pages/course/player", "pathName": "pages/course/player",
...@@ -105,4 +99,4 @@ ...@@ -105,4 +99,4 @@
] ]
} }
} }
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论