weweb-cli
Version:
微信小程序转成h5的小工具
1 lines • 8.29 kB
JavaScript
webpackJsonp([0],{290:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Video=void 0;var o=n(10),a=i(o),s=n(5),r=i(s),l=n(308),u=i(l),d=n(80),c=i(d),p=function(){function e(e,t){var n=[],i=!0,o=!1,a=void 0;try{for(var s,r=(0,c.default)(e);!(i=(s=r.next()).done);i=!0){var l=s.value;if(n.push(l),t&&n.length===t)break}}catch(e){o=!0,a=e}finally{try{!i&&r.return&&r.return()}finally{if(o)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if((0,u.default)(Object(t)))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.Video=window.exparser.registerElement({is:"wx-video",behaviors:["wx-base","wx-player"],template:'\n <div class="wx-video-container">\n <video id="player" webkit-playsinline style="display: none;"></video>\n <div id="default" class$="wx-video-bar {{_barType}}" style="display: none;">\n <div id="controls" class="wx-video-controls">\n <div id="button" class$="wx-video-button {{_buttonType}}"></div>\n <div class="wx-video-time" parse-text-content>{{_currentTime}}</div>\n <div id="progress" class="wx-video-progress">\n <div id="ball" class="wx-video-ball" style$="left: {{_progressLeft}}px;">\n <div class="wx-video-inner"></div>\n </div>\n <div class="wx-video-inner" style$="width: {{_progressLength}}px;"></div>\n </div>\n <div class="wx-video-time" parse-text-content>{{_duration}}</div>\n </div>\n <div id="danmuBtn" class$="wx-video-danmu-btn {{_danmuStatus}}" style="display: none">弹幕</div>\n <div id="fullscreen" class="wx-video-fullscreen"></div>\n </div>\n <div id="danmu" class="wx-video-danmu" style="z-index: -9999">\n </div>\n </div>\n <div id="fakebutton"></div>\n ',properties:{hidden:{type:Boolean,value:!1,public:!0,observer:"_hiddenChanged"},autoplay:{type:Boolean,value:!1,public:!0},danmuBtn:{type:Boolean,value:!1,public:!0,observer:"danmuBtnChanged"},enableDanmu:{type:Boolean,value:!1,observer:"enableDanmuChanged",public:!0},enableFullScreen:{type:Boolean,value:!1,public:!0},controls:{type:Boolean,value:!0,public:!0,observer:"controlsChanged"},danmuList:{type:Array,value:[],public:!0},objectFit:{type:String,value:"contain",public:!0,observer:"objectFitChanged"},duration:{type:Number,value:0,public:!0,observer:"durationChanged"},_videoId:{type:Number},_isLockTimeUpdateProgress:{type:Boolean,value:!1},_rate:{type:Number,value:0},_progressLeft:{type:Number,value:-22},_progressLength:{type:Number,value:0},_barType:{type:String,value:"full"},_danmuStatus:{type:String,value:""}},listeners:{"ball.touchstart":"onBallTouchStart"},_reset:function(){this._buttonType="play",this._currentTime="00:00",this._duration=this._formatTime(this.duration),this._progressLeft=-22,this._progressLength=0,this._barType=this.controls?"full":"part"},_hiddenChanged:function(e,t){this.$.player.pause(),this.$$.style.display=e?"none":""},posterChanged:function(e,t){this._isError||(this.$.player.poster=e)},srcChanged:function(e,t){if(!this._isError&&e){var n=this;this.$.player.src=e,setTimeout(function(){n._reset()},0)}},controlsChanged:function(e,t){this.controls?this._barType="full":this.danmuBtn?this._barType="part":this._barType="none",this.$.fullscreen.style.display=e?"block":"none",this.$.controls.style.display=e?"flex":"none"},objectFitChanged:function(e,t){this.$.player.style.objectFit=e},durationChanged:function(e,t){console.log("durationChanged",e),e>0&&(this._duration=this._formatTime(Math.floor(e)))},danmuBtnChanged:function(e,t){this.controls?this._barType="full":this.danmuBtn?this._barType="part":this._barType="none",this.$.danmuBtn.style.display=e?"":"none"},enableDanmuChanged:function(e,t){this._danmuStatus=e?"active":"",this.$.danmu.style.zIndex=e?"0":"-9999"},actionChanged:function(e,t){if("object"===(void 0===e?"undefined":(0,r.default)(e))){var n=e.method,i=e.data;if("play"===n)this.$.player.play();else if("pause"===n)this.$.player.pause();else if("seek"===n)this.$.player.currentTime=i[0],this._resetDanmu();else if("sendDanmu"===n){var o=p(i,2),a=o[0],s=o[1],l=parseInt(this.$.player.currentTime);this.danmuObject[l]?this.danmuObject[l].push({text:a,color:s,time:l}):this.danmuObject[l]=[{text:a,color:s,time:l}]}}},onPlay:function(){var e=this,t=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(t,[function(t){var n=3*(parseInt(getComputedStyle(t).left)+t.offsetWidth)/(t.offsetWidth+e.$$.offsetWidth);t.style.left="-"+t.offsetWidth+"px",t.style.transitionDuration=n+"s",t.style.webkitTransitionDuration=n+"s"}])},onPause:function(e){var t=document.querySelectorAll(".wx-video-danmu-item");Array.prototype.forEach.apply(t,[function(e){e.style.left=getComputedStyle(e).left}])},onEnded:function(e){},_computeRate:function(e){var t=this.$.progress.getBoundingClientRect().left,n=this.$.progress.offsetWidth,i=(e-t)/n;return i<0?i=0:i>1&&(i=1),i},_setProgress:function(e){this._progressLength=Math.floor(this.$.progress.offsetWidth*e),this._progressLeft=this._progressLength-22},_sendDanmu:function(e){if(this.playing&&!e.flag){e.flag=!0;var t=document.createElement("p");t.className+="wx-video-danmu-item",t.textContent=e.text,t.style.top=this._genDanmuPosition()+"%",t.style.color=e.color,this.$.danmu.appendChild(t),t.style.left="-"+t.offsetWidth+"px"}},_genDanmuPosition:function(){if(this.lastDanmuPosition){var e=100*Math.random();Math.abs(e-this.lastDanmuPosition)<10?this.lastDanmuPosition=(this.lastDanmuPosition+50)%100:this.lastDanmuPosition=e}else this.lastDanmuPosition=100*Math.random();return this.lastDanmuPosition},attached:function(){var e=this;WeixinJSBridge.publish("videoPlayerInsert",{domId:this.id,videoPlayerId:0}),this.$.default.style.display="",this.$.player.style.display="",this.$.player.autoplay=this.autoplay,this.$.player.style.objectFit=this.objectFit,console.log("attached",this.objectFit),this.danmuObject=this.danmuList.reduce(function(e,t){return"number"==typeof t.time&&t.time>=0&&"string"==typeof t.text&&t.text.length>0&&(e[t.time]?e[t.time].push({text:t.text,color:t.color||"#ffffff"}):e[t.time]=[{text:t.text,color:t.color||"#ffffff"}]),e},{}),this.$.button.onclick=function(t){t.stopPropagation(),e.$.player[e._buttonType]()},this.$.progress.onclick=function(t){t.stopPropagation();var n=e._computeRate(t.clientX);e.$.player.currentTime=e.$.player.duration*n,e._resetDanmu()},this.$.fullscreen.onclick=function(t){t.stopPropagation(),e.enableFullScreen=!e.enableFullScreen,e.enableFullScreen&&e.$.player.webkitEnterFullscreen(),e.triggerEvent("togglefullscreen",{enable:e.enableFullScreen})},this.$.danmuBtn.onclick=function(t){t.stopPropagation(),e.enableDanmu=!e.enableDanmu,e.triggerEvent("toggledanmu",{enable:e.enableDanmu})},WeixinJSBridge.subscribe("video_"+this.id+"_actionChanged",function(t){e.action=t,e.actionChanged(t)})},onTimeUpdate:function(e){var t=this;e.stopPropagation();var n=this.$.player.currentTime/this.$.player.duration;this._isLockTimeUpdateProgress||this._setProgress(n);var i=this.danmuObject[parseInt(this.$.player.currentTime)];void 0!==i&&i.length>0&&i.forEach(function(e){t._sendDanmu(e)})},detached:function(){},onBallTouchStart:function(){if(!this.isLive){var e=this;e._isLockTimeUpdateProgress=!0;var t=function(t){t.stopPropagation(),t.preventDefault(),e._rate=e._computeRate(t.touches[0].clientX),e._setProgress(e._rate)},n=function n(i){e.$.player.currentTime=e.$.player.duration*e._rate,document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n),e._isLockTimeUpdateProgress=!1,e._resetDanmu()};document.addEventListener("touchmove",t),document.addEventListener("touchend",n)}},_resetDanmu:function(){var e=this;this.$.danmu.innerHTML="",(0,a.default)(this.danmuObject).forEach(function(t){e.danmuObject[t].forEach(function(e){e.flag=!1})})}})},308:function(e,t,n){e.exports={default:n(309),__esModule:!0}},309:function(e,t,n){n(51),n(40),e.exports=n(310)},310:function(e,t,n){var i=n(81),o=n(6)("iterator"),a=n(31);e.exports=n(2).isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||a.hasOwnProperty(i(t))}}});