mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-14 00:06:17 -08:00
add Artplayer.USE_RAF
This commit is contained in:
1 parent
6fc1532ada
commit
9ba838aa52
10 files changed
+105
-11
No files matched your search
@@ -520,4 +520,20 @@ var art = new Artplayer({
|
||||
container: '.artplayer-app',
|
||||
url: '/assets/sample/video.mp4',
|
||||
});
|
||||
```
|
||||
|
||||
## USE_RAF
|
||||
|
||||
设置是否使用 `requestAnimationFrame` ,默认为 `false`,目前主要用于进度条的平滑效果
|
||||
|
||||
<div className="run-code">▶ Run Code</div>
|
||||
|
||||
```js
|
||||
Artplayer.USE_RAF = true;
|
||||
|
||||
var art = new Artplayer({
|
||||
container: '.artplayer-app',
|
||||
url: '/assets/sample/video.mp4',
|
||||
miniProgressBar: true,
|
||||
});
|
||||
```
|
||||
@@ -520,4 +520,20 @@ var art = new Artplayer({
|
||||
container: '.artplayer-app',
|
||||
url: '/assets/sample/video.mp4',
|
||||
});
|
||||
```
|
||||
|
||||
## USE_RAF
|
||||
|
||||
设置是否使用 `requestAnimationFrame` ,默认为 `false`,目前主要用于进度条的平滑效果
|
||||
|
||||
<div className="run-code">▶ Run Code</div>
|
||||
|
||||
```js
|
||||
Artplayer.USE_RAF = true;
|
||||
|
||||
var art = new Artplayer({
|
||||
container: '.artplayer-app',
|
||||
url: '/assets/sample/video.mp4',
|
||||
miniProgressBar: true,
|
||||
});
|
||||
```
|
||||
@@ -118,9 +118,15 @@ export default function progress(options) {
|
||||
setBar('loaded', art.loaded);
|
||||
});
|
||||
|
||||
art.on('video:timeupdate', () => {
|
||||
setBar('played', art.played);
|
||||
});
|
||||
if (art.constructor.USE_RAF) {
|
||||
art.on('raf', () => {
|
||||
setBar('played', art.played);
|
||||
});
|
||||
} else {
|
||||
art.on('video:timeupdate', () => {
|
||||
setBar('played', art.played);
|
||||
});
|
||||
}
|
||||
|
||||
art.on('video:ended', () => {
|
||||
setBar('played', 1);
|
||||
|
||||
@@ -6,6 +6,7 @@ import resizeInit from './resizeInit';
|
||||
import gestureInit from './gestureInit';
|
||||
import viewInit from './viewInit';
|
||||
import documentInit from './documentInit';
|
||||
import updateInit from './updateInit';
|
||||
|
||||
export default class Events {
|
||||
constructor(art) {
|
||||
@@ -21,6 +22,7 @@ export default class Events {
|
||||
gestureInit(art, this);
|
||||
viewInit(art, this);
|
||||
documentInit(art, this);
|
||||
updateInit(art, this);
|
||||
}
|
||||
|
||||
proxy(target, name, callback, option = {}) {
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
export default function updateInit(art) {
|
||||
if (art.constructor.USE_RAF) {
|
||||
let timer = null;
|
||||
|
||||
(function update() {
|
||||
if (art.playing) {
|
||||
art.emit('raf');
|
||||
}
|
||||
|
||||
if (!art.isDestroy) {
|
||||
timer = requestAnimationFrame(update);
|
||||
}
|
||||
})();
|
||||
|
||||
art.on('destroy', () => {
|
||||
cancelAnimationFrame(timer);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -242,6 +242,7 @@ Artplayer.ASPECT_RATIO = ['default', '4:3', '16:9'];
|
||||
Artplayer.FLIP = ['normal', 'horizontal', 'vertical'];
|
||||
Artplayer.FULLSCREEN_WEB_IN_BODY = false;
|
||||
Artplayer.LOG_VERSION = true;
|
||||
Artplayer.USE_RAF = false;
|
||||
|
||||
if (typeof document !== 'undefined') {
|
||||
if (!document.getElementById('artplayer-style')) {
|
||||
|
||||
@@ -7,9 +7,15 @@ export default function miniProgressBar(art) {
|
||||
$progressBar.style.display = 'none';
|
||||
});
|
||||
|
||||
art.on('video:timeupdate', () => {
|
||||
$progressBar.style.width = `${art.played * 100}%`;
|
||||
});
|
||||
if (art.constructor.USE_RAF) {
|
||||
art.on('raf', () => {
|
||||
$progressBar.style.width = `${art.played * 100}%`;
|
||||
});
|
||||
} else {
|
||||
art.on('video:timeupdate', () => {
|
||||
$progressBar.style.width = `${art.played * 100}%`;
|
||||
});
|
||||
}
|
||||
|
||||
art.on('setBar', (type, percentage) => {
|
||||
if (type === 'played') {
|
||||
|
||||
Reference in new issue
Block a user