mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-28 18:41:20 -08:00
networkMonitor 添加采样时间
This commit is contained in:
1 parent
b444b4fcc5
commit
abeb4b5326
4 files changed
+30
-8
No files matched your search
@@ -639,7 +639,8 @@ var art = new Artplayer({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Is the ratio of the time the video is blocked to the time the video has been played.
|
// Is the ratio of the time the video is blocked to the time the video has been played.
|
||||||
// For example, when the ratio is equal to 0.3, it means that every ten seconds, it is blocked for three seconds.
|
// For example, when the ratio is equal to 0.3, it means that every 10 seconds of sampling time, it is blocked for three seconds.
|
||||||
|
|
||||||
let notice = false;
|
let notice = false;
|
||||||
art.on('networkMonitor', ratio => {
|
art.on('networkMonitor', ratio => {
|
||||||
if (ratio >= 0.5 && !notice) {
|
if (ratio >= 0.5 && !notice) {
|
||||||
@@ -647,6 +648,9 @@ art.on('networkMonitor', ratio => {
|
|||||||
console.log('Current network condition is not good');
|
console.log('Current network condition is not good');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Modify sampling time, the unit is milliseconds, default 10 seconds.
|
||||||
|
art.plugins.networkMonitor.sample(30000);
|
||||||
```
|
```
|
||||||
|
|
||||||
## subtitle
|
## subtitle
|
||||||
|
|||||||
@@ -4227,6 +4227,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function networkMonitor(art) {
|
function networkMonitor(art) {
|
||||||
|
var sampleTime = 10000;
|
||||||
var waitTime = 0;
|
var waitTime = 0;
|
||||||
var playTime = 0;
|
var playTime = 0;
|
||||||
var lastTime = 0;
|
var lastTime = 0;
|
||||||
@@ -4240,7 +4241,7 @@
|
|||||||
timer = null;
|
timer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculatingTime() {
|
function startTime() {
|
||||||
if (timer) return;
|
if (timer) return;
|
||||||
|
|
||||||
(function loop() {
|
(function loop() {
|
||||||
@@ -4259,17 +4260,26 @@
|
|||||||
|
|
||||||
lastTime = nowTime;
|
lastTime = nowTime;
|
||||||
art.emit('networkMonitor', waitTime / playTime);
|
art.emit('networkMonitor', waitTime / playTime);
|
||||||
|
|
||||||
|
if (playTime >= sampleTime) {
|
||||||
|
waitTime = 0;
|
||||||
|
playTime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
loop();
|
loop();
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
||||||
art.on('play', calculatingTime);
|
art.on('play', startTime);
|
||||||
art.on('pause', resetTime);
|
art.on('pause', resetTime);
|
||||||
return {
|
return {
|
||||||
name: 'networkMonitor',
|
name: 'networkMonitor',
|
||||||
reset: resetTime,
|
reset: resetTime,
|
||||||
calculating: calculatingTime
|
start: startTime,
|
||||||
|
sample: function sample(time) {
|
||||||
|
sampleTime = time;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../packages/artplayer/node_modules/option-validator/dist/option-validator.js","../../packages/artplayer/src/emitter.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer/src/utils/ArtPlayerError.js","../../packages/artplayer/src/utils/index.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/mimeCodec.js","../../packages/artplayer/src/config/mse.js","../../packages/artplayer/src/config/video.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/attachUrlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/index.js","../../packages/artplayer/src/utils/component.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../packages/artplayer/src/controls/fullscreen.js","../../packages/artplayer/src/controls/fullscreenWeb.js","../../packages/artplayer/src/controls/pip.js","../../packages/artplayer/src/controls/playAndPause.js","../../packages/artplayer/src/controls/progress.js","../../packages/artplayer/src/controls/subtitle.js","../../packages/artplayer/src/controls/time.js","../../packages/artplayer/src/controls/volume.js","../../packages/artplayer/src/controls/setting.js","../../packages/artplayer/src/controls/thumbnails.js","../../packages/artplayer/src/controls/screenshot.js","../../packages/artplayer/src/controls/quality.js","../../packages/artplayer/src/controls/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layers.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRaLine truncated
|
{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../packages/artplayer/node_modules/option-validator/dist/option-validator.js","../../packages/artplayer/src/emitter.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer/src/utils/ArtPlayerError.js","../../packages/artplayer/src/utils/index.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/mimeCodec.js","../../packages/artplayer/src/config/mse.js","../../packages/artplayer/src/config/video.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/attachUrlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/index.js","../../packages/artplayer/src/utils/component.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../packages/artplayer/src/controls/fullscreen.js","../../packages/artplayer/src/controls/fullscreenWeb.js","../../packages/artplayer/src/controls/pip.js","../../packages/artplayer/src/controls/playAndPause.js","../../packages/artplayer/src/controls/progress.js","../../packages/artplayer/src/controls/subtitle.js","../../packages/artplayer/src/controls/time.js","../../packages/artplayer/src/controls/volume.js","../../packages/artplayer/src/controls/setting.js","../../packages/artplayer/src/controls/thumbnails.js","../../packages/artplayer/src/controls/screenshot.js","../../packages/artplayer/src/controls/quality.js","../../packages/artplayer/src/controls/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layers.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRaLine truncated
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
export default function networkMonitor(art) {
|
export default function networkMonitor(art) {
|
||||||
|
let sampleTime = 10000;
|
||||||
let waitTime = 0;
|
let waitTime = 0;
|
||||||
let playTime = 0;
|
let playTime = 0;
|
||||||
let lastTime = 0;
|
let lastTime = 0;
|
||||||
@@ -12,7 +13,7 @@ export default function networkMonitor(art) {
|
|||||||
timer = null;
|
timer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculatingTime() {
|
function startTime() {
|
||||||
if (timer) return;
|
if (timer) return;
|
||||||
(function loop() {
|
(function loop() {
|
||||||
if (art.isDestroy) return;
|
if (art.isDestroy) return;
|
||||||
@@ -27,17 +28,24 @@ export default function networkMonitor(art) {
|
|||||||
}
|
}
|
||||||
lastTime = nowTime;
|
lastTime = nowTime;
|
||||||
art.emit('networkMonitor', waitTime / playTime);
|
art.emit('networkMonitor', waitTime / playTime);
|
||||||
|
if (playTime >= sampleTime) {
|
||||||
|
waitTime = 0;
|
||||||
|
playTime = 0;
|
||||||
|
}
|
||||||
loop();
|
loop();
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
||||||
art.on('play', calculatingTime);
|
art.on('play', startTime);
|
||||||
art.on('pause', resetTime);
|
art.on('pause', resetTime);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: 'networkMonitor',
|
name: 'networkMonitor',
|
||||||
reset: resetTime,
|
reset: resetTime,
|
||||||
calculating: calculatingTime,
|
start: startTime,
|
||||||
|
sample: time => {
|
||||||
|
sampleTime = time;
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user