()
| 16840 | } |
| 16841 | }; |
| 16842 | let loadImg = async() => { |
| 16843 | self.showTips("Loading image..."); |
| 16844 | |
| 16845 | let imgSrc = dataset(node, 'src'); |
| 16846 | let mode = matchedRule.getMode(imgSrc); |
| 16847 | let media; |
| 16848 | let loaded = function() { |
| 16849 | media.play(); |
| 16850 | self.showTips(""); |
| 16851 | popupImgWin(this || media); |
| 16852 | media.removeEventListener('loadeddata', loaded); |
| 16853 | } |
| 16854 | switch (mode) { |
| 16855 | case "video": |
| 16856 | media = createVideo(); |
| 16857 | media.style.width = 0; |
| 16858 | media.style.height = 0; |
| 16859 | media.controls = true; |
| 16860 | media.loop = true; |
| 16861 | media.autoplay = true; |
| 16862 | media.volume = matchedRule.mute ? 0 : 1; |
| 16863 | imgSrc = imgSrc.replace(/^video:/, ""); |
| 16864 | if (imgSrc.indexOf('.mkv') !== -1) media.type = 'video/mp4'; |
| 16865 | else if (imgSrc.indexOf('.m3u8') !== -1) { |
| 16866 | try { |
| 16867 | loaded(); |
| 16868 | await initVideojs(media, imgSrc); |
| 16869 | imgSrc = ""; |
| 16870 | } catch (error) { |
| 16871 | console.error('Failed to load or initialize Video.js player:', error); |
| 16872 | } |
| 16873 | } |
| 16874 | break; |
| 16875 | case "audio": |
| 16876 | media = document.createElement('audio'); |
| 16877 | media.controls = true; |
| 16878 | media.autoplay = true; |
| 16879 | media.volume = matchedRule.mute ? 0 : 1; |
| 16880 | imgSrc = imgSrc.replace(/^audio:/, ""); |
| 16881 | break; |
| 16882 | default: |
| 16883 | break; |
| 16884 | } |
| 16885 | if (media) { |
| 16886 | if (imgSrc) { |
| 16887 | media.src = imgSrc; |
| 16888 | media.addEventListener('loadeddata', loaded); |
| 16889 | media.load(); |
| 16890 | } |
| 16891 | } else { |
| 16892 | imgReady(imgSrc, { |
| 16893 | ready: function() { |
| 16894 | self.showTips(""); |
| 16895 | popupImgWin(this); |
| 16896 | }, |
| 16897 | error:function(e){ |
| 16898 | self.showTips(""); |
| 16899 | loadError(); |
no test coverage detected