Detecting Video Resolution Changes
With some codecs and containers, it's possible for a video to change resolution mid-stream. This is particularly common with RTC-style video streams where resolution can scale up/
Solution 1:
There is now a resize
event which fires when the video resolution changes.
HTML
<pdata-content="resolution"></p><videosrc="https://bug1250345.bmoattachments.org/attachment.cgi?id=8722238"></video>
JavaScript
document.querySelector('video').addEventListener('resize', (e) => {
document.querySelector('[data-content="resolution"]').textContent = [
e.target.videoWidth,
e.target.videoHeight
].join('x');
});
(JSFiddle: http://jsfiddle.net/qz61o2xt/)
References:
Solution 2:
look if this helps I'm not sure.
Solution 3:
You can use loadedmetadata
event to define global variables or utilize Element.dataset
to reflect initial .videoWidth
, .videoHeight
properties of <video>
element; at timeupdate
event of <video>
initially stored and current event .videoWidth
, .videoHeight
values, if one of the properties changed call function
window.onload = function() {
functionhandleResolutionChange(event) {
// do stuff if `.videoWidth` or `.videoHeight` changed from initial value
}
var video = document.querySelector("video");
video.addEventListener("loadedmetadata", function(event) {
event.target.dataset.width = event.target.videoWidth;
event.target.dataset.height = event.target.videoHeight;
})
video.addEventListener("timeupdate", function(event) {
if (+event.target.dataset.width !== event.target.videoWidth
&& +event.target.dataset.height !== event.target.videoHeight) {
// call `handleResolutionChange` one or more times// if `event.target` `.videoWidth` or `.videoHeight` changed
handleResolutionChange.call(event.target, event)
}
})
}
Post a Comment for "Detecting Video Resolution Changes"