if ('serviceWorker' in navigator) { var iceworker = navigator.serviceWorker.register('worker.js') //I get this error in Google Chrome Uncaught TypeError: Cannot read property 'addEventListener' of undefined //For this line. navigator.serviceWorker.addEventListener('message', event => {
<audio preload="none" id="aud" controls src="https://toohotradio.net/metadata/icy/" type="audio/mpeg"> </audio> <div></div> <ul> </ul> <script> if ('serviceWorker' in navigator) { var iceworker = navigator.serviceWorker.register('metadataworker.js') .then(function(reg) { console.log('Icecast service worker registered'); addItem('Icecast service worker registered. Click play to start the stream.'); }).catch(function(error) { console.warn('Error ' + error); addItem('Error ' + error); }); } var delay = 8000; navigator.serviceWorker.addEventListener('message', event => { if(event.origin != 'https://toohotradio.net'){ return; } setTimeout(function(){ document.querySelector('div').innerText = event.data.msg.substring(event.data.msg.indexOf("'") + 1,event.data.msg.lastIndexOf("'")); },delay); console.log(event.data.msg); addItem('Message from service worker ' + event.data.msg); }); document.querySelector('audio').addEventListener('play', event => { performance.mark('play'); addItem("Measuring buffering time..."); }) document.querySelector('audio').addEventListener('playing', event => { performance.mark('playing'); performance.measure('delay','play','playing'); var measures = performance.getEntriesByName("delay"); delay = measures[0].duration; addItem("Buffering took " + (delay/1000).toFixed(2) + " seconds"); addItem("Setting metadata update delay to " + (delay/1000).toFixed(2) + " seconds"); }) document.querySelector('audio').addEventListener('pause', event => { navigator.serviceWorker.controller.postMessage('message'); document.querySelector('audio').src = document.querySelector('audio').src; }) function addItem(text) { var node = document.createElement("li"); var textnode = document.createTextNode(text); node.appendChild(textnode); document.querySelector('ul').appendChild(node); } </script>
Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.
”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.
Our community of experts have been thoroughly vetted for their expertise and industry experience.
The Distinguished Expert awards are presented to the top veteran and rookie experts to earn the most points in the top 50 topics.