소스 검색

full screen in iOS

DIYgod 8 년 전
부모
커밋
97f2fcd710
6개의 변경된 파일268개의 추가작업 그리고 260개의 파일을 삭제
  1. 0 0
      dist/DPlayer.min.js
  2. 0 0
      dist/DPlayer.min.js.map
  3. 2 2
      package.json
  4. 37 26
      src/DPlayer.js
  5. 2 2
      src/DPlayer.scss
  6. 227 230
      yarn.lock

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/DPlayer.min.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/DPlayer.min.js.map


+ 2 - 2
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "dplayer",
   "name": "dplayer",
-  "version": "1.1.2",
+  "version": "1.1.3",
   "description": "Wow, such a lovely HTML5 danmaku video player",
   "description": "Wow, such a lovely HTML5 danmaku video player",
   "main": "dist/DPlayer.min.js",
   "main": "dist/DPlayer.min.js",
   "scripts": {
   "scripts": {
@@ -34,7 +34,7 @@
     "file-loader": "^0.10.0",
     "file-loader": "^0.10.0",
     "node-sass": "^4.5.0",
     "node-sass": "^4.5.0",
     "postcss-loader": "^1.2.2",
     "postcss-loader": "^1.2.2",
-    "sass-loader": "^4.1.1",
+    "sass-loader": "^6.0.2",
     "style-loader": "^0.13.1",
     "style-loader": "^0.13.1",
     "url-loader": "^0.5.7",
     "url-loader": "^0.5.7",
     "webpack": "^2.2.1",
     "webpack": "^2.2.1",

+ 37 - 26
src/DPlayer.js

@@ -1,4 +1,4 @@
-console.log("\n %c DPlayer 1.1.2 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;");
+console.log("\n %c DPlayer 1.1.3 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;");
 
 
 require('./DPlayer.scss');
 require('./DPlayer.scss');
 const defaultApiBackend = require('./api.js');
 const defaultApiBackend = require('./api.js');
@@ -124,7 +124,7 @@ class DPlayer {
         this.element.innerHTML = `
         this.element.innerHTML = `
             <div class="dplayer-mask"></div>
             <div class="dplayer-mask"></div>
             <div class="dplayer-video-wrap">
             <div class="dplayer-video-wrap">
-                <video class="dplayer-video" ${this.option.video.pic ? `poster="${this.option.video.pic}"` : ``} webkit-playsinline ${this.option.screenshot ? `crossorigin="anonymous"` : ``} preload="${this.option.preload}" src="${this.option.video.url}"></video>
+                <video class="dplayer-video" ${this.option.video.pic ? `poster="${this.option.video.pic}"` : ``} webkit-playsinline playsinline ${this.option.screenshot ? `crossorigin="anonymous"` : ``} preload="${this.option.preload}" src="${this.option.video.url}"></video>
                 <div class="dplayer-danmaku">
                 <div class="dplayer-danmaku">
                     <div class="dplayer-danmaku-item dplayer-danmaku-item--demo"></div>
                     <div class="dplayer-danmaku-item dplayer-danmaku-item--demo"></div>
                 </div>
                 </div>
@@ -312,7 +312,7 @@ class DPlayer {
 
 
         // play and pause button
         // play and pause button
         this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];
         this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];
-        this.shouldpause = true;
+        this.paused = true;
         this.playButton.addEventListener('click', () => {
         this.playButton.addEventListener('click', () => {
             this.toggle();
             this.toggle();
         });
         });
@@ -829,6 +829,18 @@ class DPlayer {
             }
             }
         });
         });
 
 
+        this.video.addEventListener('play', () => {
+            if (this.paused) {
+                this.play();
+            }
+        });
+
+        this.video.addEventListener('pause', () => {
+            if (!this.paused) {
+                this.pause();
+            }
+        });
+
         // control volume
         // control volume
         this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;
         this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;
 
 
@@ -1081,15 +1093,12 @@ class DPlayer {
 
 
         this.element.addEventListener('fullscreenchange', () => {
         this.element.addEventListener('fullscreenchange', () => {
             resetAnimation();
             resetAnimation();
-            console.log(danContainer.offsetHeight);
         });
         });
         this.element.addEventListener('mozfullscreenchange', () => {
         this.element.addEventListener('mozfullscreenchange', () => {
             resetAnimation();
             resetAnimation();
-            console.log(danContainer.offsetHeight);
         });
         });
         this.element.addEventListener('webkitfullscreenchange', () => {
         this.element.addEventListener('webkitfullscreenchange', () => {
             resetAnimation();
             resetAnimation();
-            console.log(danContainer.offsetHeight);
         });
         });
         this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', () => {
         this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', () => {
             if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {
             if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {
@@ -1102,6 +1111,9 @@ class DPlayer {
                 else if (this.element.webkitRequestFullscreen) {
                 else if (this.element.webkitRequestFullscreen) {
                     this.element.webkitRequestFullscreen();
                     this.element.webkitRequestFullscreen();
                 }
                 }
+                else if (this.video.webkitEnterFullscreen) {   // Safari for iOS
+                    this.video.webkitEnterFullscreen();
+                }
             }
             }
             else {
             else {
                 if (document.cancelFullScreen) {
                 if (document.cancelFullScreen) {
@@ -1219,42 +1231,41 @@ class DPlayer {
         if (Object.prototype.toString.call(time) === '[object Number]') {
         if (Object.prototype.toString.call(time) === '[object Number]') {
             this.video.currentTime = time;
             this.video.currentTime = time;
         }
         }
+        this.paused = false;
         if (this.video.paused) {
         if (this.video.paused) {
-            this.shouldpause = false;
-
             this.bezel.innerHTML = this.getSVG('play');
             this.bezel.innerHTML = this.getSVG('play');
             this.bezel.classList.add('dplayer-bezel-transition');
             this.bezel.classList.add('dplayer-bezel-transition');
+        }    
 
 
-            this.playButton.innerHTML = this.getSVG('pause');
+        this.playButton.innerHTML = this.getSVG('pause');
 
 
-            this.video.play();
-            if (this.playedTime) {
-                this.clearTime();
-            }
-            this.setTime();
-            this.element.classList.add('dplayer-playing');
-            this.trigger('play');
+        this.video.play();
+        if (this.playedTime) {
+            this.clearTime();
         }
         }
+        this.setTime();
+        this.element.classList.add('dplayer-playing');
+        this.trigger('play');
     }
     }
 
 
     /**
     /**
      * Pause music
      * Pause music
      */
      */
     pause() {
     pause() {
-        if (!this.shouldpause || this.ended) {
-            this.shouldpause = true;
-            this.element.classList.remove('dplayer-loading');
+        this.paused = true;
+        this.element.classList.remove('dplayer-loading');
 
 
+        if (!this.video.paused) {
             this.bezel.innerHTML = this.getSVG('pause');
             this.bezel.innerHTML = this.getSVG('pause');
             this.bezel.classList.add('dplayer-bezel-transition');
             this.bezel.classList.add('dplayer-bezel-transition');
-
-            this.ended = false;
-            this.playButton.innerHTML = this.getSVG('play');
-            this.video.pause();
-            this.clearTime();
-            this.element.classList.remove('dplayer-playing');
-            this.trigger('pause');
         }
         }
+
+        this.ended = false;
+        this.playButton.innerHTML = this.getSVG('play');
+        this.video.pause();
+        this.clearTime();
+        this.element.classList.remove('dplayer-playing');
+        this.trigger('pause');
     }
     }
 
 
     /**
     /**

+ 2 - 2
src/DPlayer.scss

@@ -5,8 +5,8 @@
     line-height: 1;
     line-height: 1;
 
 
     &:-webkit-full-screen {
     &:-webkit-full-screen {
-        width: 100%;
-        height: 100%;
+        width: 100% !important;
+        height: 100% !important;
         background: #000;
         background: #000;
 
 
         .dplayer-danmaku {
         .dplayer-danmaku {

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 227 - 230
yarn.lock


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.