// initialize jwplayer var playerInstance = jwplayer('player'); // player dom elements var playerContainerEl = document.querySelector('.player-container'); // returns video player position from top of document function getElementOffsetTop(el) { var boundingClientRect = el.getBoundingClientRect(); var bodyEl = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop; var clientTop = docEl.clientTop || bodyEl.clientTop || 0; return Math.round(boundingClientRect.top + scrollTop - clientTop); } // returns the current y scroll position function getScrollTop() { var docEl = document.documentElement; return (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || 0); } // configure jwplayer instance playerInstance.setup({ autostart: true, playlist: 'https://cdn.jwplayer.com/v2/playlists/mYdavspX', primary: 'html5', setFullscreen: true, width: '100%' }); // when jwplayer instance is ready playerInstance.on('ready', function() { var config = playerInstance.getConfig(); var utils = playerInstance.utils; // get height of player element var playerHeight = config.containerHeight; // flag determining whether close has been clicked var closed = true; // CHANGED // flag determing whether player is playing var playing = false; // ADDED // eventhandler for when close button is being pressed document.getElementsByClassName('icon-close')[0].addEventListener('click', () => { closed = true; onScrollViewHandler(); }); playerInstance.on('play', function() { closed = false; playing = true; // ADDED }).on('pause', function () { playing = false; // ADDED }).on('adPlay', function() { closed = false; // ADDED playing = true; // ADDED }).on('adPause', function() { playing = false; // ADDED }); // get player element position from top of document var playerOffsetTop = getElementOffsetTop(playerContainerEl); // set player container to match height of actual video element playerContainerEl.style.height = playerHeight + 'px'; // below we handle window scroll event without killing performance function onScrollViewHandler() { var minimized = getScrollTop() >= playerOffsetTop; if (closed && minimized) { minimized = false; jwplayer().pause(); playing = false; // ADDED } else if (!minimized && !playing) { closed = true; // ADDED } utils.toggleClass(playerContainerEl, 'player-minimize', minimized); // update the player's size so the controls are adjusted playerInstance.resize(); } // namespace for whether or not we are waiting for setTimeout() to finish var isScrollTimeout = false; // window onscroll event handler window.onscroll = function() { // skip if we're waiting on a scroll update timeout to finish if (isScrollTimeout) return; // flag that a new timeout will begin isScrollTimeout = true; // otherwise, call scroll event view handler onScrollViewHandler(); // set new timeout setTimeout(function() { // reset timeout flag to false (no longer waiting) isScrollTimeout = false; }, 80); }; });

Microsoft took the stage at the 2019 The Game Awards to announce their next generation Xbox: Xbox Series X.

Xbox Series X will be our fastest, most powerful console ever and set a new bar for performance, speed and compatibility, allowing you to bring your gaming legacy, thousands of games from three generations and more forward with you. Its industrial design enables us to deliver four times the processing power of Xbox One X in the most quiet and efficient way, something that is critically important in delivering truly immersive gameplay. We also designed Xbox Series X to support both vertical and horizontal orientation. It’s bold and unique, very much like our fans around the world and the team of collaborators and innovators who built it.

It is described as the fastest and most powerful Xbox yet, and will lead Xbox into the next generation.

Microsoft detailed some of the specs in a Xbox Wire post:

From a technical standpoint, this will manifest as world-class visuals in 4K at 60FPS, with possibility of up to 120FPS, including support for Variable Refresh Rate (VRR), and 8K capability. Powered by our custom-designed processor leveraging the latest Zen 2 and next generation RDNA architecture from our partners at AMD, Xbox Series X will deliver hardware accelerated ray tracing and a new level of performance never before seen in a console.  Additionally, our patented Variable Rate Shading (VRS) technology will allow developers to get even more out of the Xbox Series X GPU and our next-generation SSD will virtually eliminate load times and bring players into their gaming worlds faster than ever before.

We are minimizing latency by leveraging technology such as Auto Low Latency Mode (ALLM) and giving developers new functionality like Dynamic Latency Input (DLI) to make Xbox Series X the most responsive console ever.  Xbox Series X is also designed for a future in the cloud, with unique capabilities built into the hardware and software to make it as easy as possible to bring great games to both console and elsewhere. Xbox Series X will deliver a level of fidelity and immersion unlike anything that’s been achieved in previous console generations. 

The new console will launch in Holiday 2020.

Here’s the reveal trailer:

The Xbox Series X will go head to head against PlayStation’s new PS5 console, which launches in Holiday 2020 as well.

comments below