Discuz功能改進-用mejs播放器来替代失效的Discuz播放器

最近再用個人空間的時候,發現Discuz播放器不能使用,剛好這邊天香老師也有針對這部分做一個修正及調整。



※本人只翻譯成繁體中文,並修正部分文句讓臺灣這邊Discuz站長可以看更清楚,可能在修正文句上並不完美,請見諒。

※本文經過天香老師同意轉載並修正文句,若要再轉載修正文句,請先經過原作者同意,尊重原作者,原作者保留修改及調整權利。


幾年前Discuz因為安全原因撤下了三款基於Flash的播放器:個人空間裡播放音樂盒的mp3player.swf,播放mp3音樂的player.swf, 和播放flv格式的Flash文件的flvplayer.swf,使得Discuz網站上音樂盒,mp3音樂,和flv格式的Flash動畫無法照常使用。 至今尚未解決。 所以本文討論下如何用一個叫MediaElement.js (簡稱mejs)的html5播放器來替代上述失效的三種播放器。
BeforeAfter

首先我們要做些準備工作:將jQuery庫和mejs庫下載到網站上。 然後要修改文件template/default/common/header_common.htm,在它的最後添加

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">&lt;script type=text/javascript src=https://translate.googleusercontent.com/translate_c?depth=1&amp;amp;pok=1&amp;amp;rurl=translate.google.com&amp;amp;sl=auto&amp;amp;sp=nmt4&amp;amp;tl=zh-TW&amp;amp;u=http://www.bian-wang.com/discuz/%257B%24_G%5Bsetting%5D%5Bjspath%5D%257Djquery.min.js&amp;amp;usg=ALkJrhjh4lGL3Tc76gRWcaUPsNUlUqeF8A&gt;&lt;/script&gt; &lt;script type=text/javascript src=https://translate.googleusercontent.com/translate_c?depth=1&amp;amp;pok=1&amp;amp;rurl=translate.google.com&amp;amp;sl=auto&amp;amp;sp=nmt4&amp;amp;tl=zh-TW&amp;amp;u=http://www.bian-wang.com/discuz/%257B%24_G%5Bsetting%5D%5Bjspath%5D%257Dmediaelement/mediaelement-and-player.min.js&amp;amp;usg=ALkJrhiX4Z8rH5TVxOUCe-1ZAoCT5NTfkg&gt;&lt;/script&gt; &lt;link rel=stylesheet href=https://translate.googleusercontent.com/translate_c?depth=1&amp;amp;pok=1&amp;amp;rurl=translate.google.com&amp;amp;sl=auto&amp;amp;sp=nmt4&amp;amp;tl=zh-TW&amp;amp;u=http://www.bian-wang.com/discuz/%257B%24_G%5Bsetting%5D%5Bjspath%5D%257Dmediaelement/mediaelementplayer.min.css&amp;amp;usg=ALkJrhjmBdZKiwTJ9OHinFNa2sGQ-c9V9g /&gt; &lt;script type=</span> &lt;script type=text/javascript src=https://translate.googleusercontent.com/translate_c?depth=1&amp;amp;pok=1&amp;amp;rurl=translate.google.com&amp;amp;sl=auto&amp;amp;sp=nmt4&amp;amp;tl=zh-TW&amp;amp ;u=http://www.bian-wang.com/discuz/%257B%24_G%5Bsetting%5D%5Bjspath%5D%257Djquery.min.js&amp;amp;usg=ALkJrhjh4lGL3Tc76gRWcaUPsNUlUqeF8A&gt;&lt;/script&gt; &lt;script type=text/ javascript src=https://translate.googleusercontent.com/translate_c?depth=1&amp;amp;pok=1&amp;amp;rurl=translate.google.com&amp;amp;sl=auto&amp;amp;sp=nmt4&amp;amp;tl=zh-TW&amp;amp;u=http:/ /www.bian-wang.com/discuz/%257B%24_G%5Bsetting%5D%5Bjspath%5D%257Dmediaelement/mediaelement-and-player.min.js&amp;amp;usg=ALkJrhiX4Z8rH5TVxOUCe-1ZAoCT5NTfkg&gt;&lt;/script&gt; &lt;link rel= stylesheet href=https://translate.googleusercontent.com/translate_c?depth=1&amp;amp;pok=1&amp;amp;rurl=translate.google.com&amp;amp;sl=auto&amp;amp;sp=nmt4&amp;amp;tl=zh-TW&amp;amp;u=http:/ /www.bian-wang.com/discuz/%257B%24_G%5Bsetting%5D%5Bjspath%5D%257Dmediaelement/mediaelementplayer.min.css&amp;amp;usg=ALkJrhjmBdZKiwTJ9OHinFNa2sGQ-c9V9g /&gt; &lt;script type=</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">text/javascript&gt; var jqm = jQuery.noConflict(true); &lt;/script&gt;</span> text/javascript&gt; var jqm = jQuery.noConflict(true); &lt;/script&gt;</span>

這裡我們假定網站將jQuery庫放在statis/js,將meja庫放在static/js/mediaelement,不然要改動上面的代碼指向實際地址。上面這句jQuery代碼的作用見我前文( 鏈接 )第二部分裡的說明。

1。 替換音樂播放器
a)替換論壇中的音樂播放器
設置界面舊播放器新播放器
需要改動的代碼在文件source/function/function_discuzcode.php 裡,將函數parseaudio 中的下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">return &#39;&lt;span id=&quot;&#39;.$randomid.&#39;&quot;&gt;&lt;/span&gt;&lt;script type=text/javascript reload=1&gt;$(\&#39;&#39;.$randomid.&#39;\&#39;).innerHTML=AC_FL_RunContent(\&#39;FlashVars\&#39;, \&#39;soundFile=&#39;.urlencode($url).&#39;\&#39;, \&#39;width\&#39;, \&#39;290\&#39;, \&#39;height\&#39;, \&#39;24\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\&#39;, \&#39;allowScriptAccess\&#39;, \&#39;never\&#39;, \&#39;src\&#39;, \&#39;&#39;.STATICURL.&#39;image/common/player.swf\&#39;, \&#39;quality\&#39;, \&#39;high\&#39;, \&#39;bgcolor\&#39;, \&#39;#FFFFFF\&#39;, \&#39;menu\&#39;, \&#39;false\&#39;, \&#39;wmode\&#39;, \&#39;transparent\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\&#39;);&lt;/script&gt;&#39;;</span> return &#39;&lt;span id=&quot;&#39;.$randomid.&#39;&quot;&gt;&lt;/span&gt;&lt;script type=text/javascript reload=1&gt;$(\&#39;&#39;.$randomid.&#39;\&#39;).innerHTML=AC_FL_RunContent(\&#39; FlashVars\&#39;, \&#39;soundFile=&#39;.urlencode($url).&#39;\&#39;, \&#39;width\&#39;, \&#39;290\&#39;, \&#39;height\&#39;, \&#39;24\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\&#39;, \&#39;allowScriptAccess\&#39;, \&#39;never\&#39;, \&#39;src\&#39;, \&#39;&#39;.STATICURL.&#39;image/common/player.swf\&#39;, \&#39;quality\&#39;, \&#39;high \&#39;, \&#39;bgcolor\&#39;, \&#39;#FFFFFF\&#39;, \&#39;menu\&#39;, \&#39;false\&#39;, \&#39;wmode\&#39;, \&#39;transparent\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\ &#39;);&lt;/script&gt;&#39;;</span>
改為

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">return &#39;&lt;audio id=&quot;&#39;.$randomid.&#39;&quot; controls preload type=audio/mp3 width=290 src=&quot;&#39;.$url.&#39;&quot;&gt;&lt;/audio&gt;&lt;script type=text/javascript&gt;jqm(&quot;#&#39;.$randomid.&#39;&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span> return &#39;&lt;audio id=&quot;&#39;.$randomid.&#39;&quot; controls preload type=audio/mp3 width=290 src=&quot;&#39;.$url.&#39;&quot;&gt;&lt;/audio&gt;&lt;script type=text/javascript&gt;jqm(&quot; #&#39;.$randomid.&#39;&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span>

b)替換日誌中的音樂播放器

需要改動的代碼在文件source/function/function_blog.php 裡,將函數blog_flash 中的下面這段

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">$swf_url = urlencode(str_replace(&#39;&amp;amp;&#39;, &#39;&amp;&#39;, $swf_url)); $html = &#39;&lt;object id=audioplayer_SHAREID height=24 width=290 data=&quot;&#39;.STATICURL.&#39;image/common/player.swf&quot; type=application/x-shockwave-flash&gt; &lt;param value=&quot;&#39;.STATICURL.&#39;image/common/player.swf&quot; name=movie /&gt; &lt;param value=&quot;autostart=yes&amp;bg=0xCDDFF3&amp;leftbg=0x357DCE&amp;lefticon=0xF2F2F2&amp;rightbg=0xF06A51&amp;rightbghover=0xAF2910&amp;righticon=0xF2F2F2&amp;righticonhover=0xFFFFFF&amp;text=0x357DCE&amp;slider=0x357DCE&amp;track=0xFFFFFF&amp;border=0xFFFFFF&amp;loader=0xAF2910&amp;soundFile=&#39;.$swf_url.&#39;&quot; name=FlashVars /&gt; &lt;param value=high name=quality /&gt; &lt;param value=false name=menu /&gt; &lt;param name=allowscriptaccess value=never&gt; &lt;param name=allowNetworking value=internal&gt; &lt;param value=#FFFFFF name=bgcolor /&gt; &lt;/object&gt;&#39;;</span> $swf_url = urlencode(str_replace(&#39;&amp;amp;&#39;, &#39;&amp;&#39;, $swf_url)); $html = &#39;&lt;object id=audioplayer_SHAREID height=24 width=290 data=&quot;&#39;.STATICURL.&#39;image/common/player. swf&quot; type=application/x-shockwave-flash&gt; &lt;param value=&quot;&#39;.STATICURL.&#39;image/common/player.swf&quot; name=movie /&gt; &lt;param value=&quot;autostart=yes&amp;bg=0xCDDFF3&amp;leftbg=0x357DCE&amp;lefticon=0xF2F2F2&amp;rightbg= 0xF06A51&amp;rightbghover=0xAF2910&amp;righticon=0xF2F2F2&amp;righticonhover=0xFFFFFF&amp;text=0x357DCE&amp;slider=0x357DCE&amp;track=0xFFFFFF&amp;border=0xFFFFFF&amp;loader=0xAF2910&amp;soundFile=&#39;.$swf_url.&#39;&quot; name=FlashVars /&gt; &lt;param value=high name=quality /&gt; &lt;param value=false name=menu /&gt; &lt;param name=allowscriptaccess value=never&gt; &lt;param name=allowNetworking value=internal&gt; &lt;param value=#FFFFFF name=bgcolor /&gt; &lt;/object&gt;&#39;;</span>
改為

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">return &#39;&lt;audio id=audioplayer_SHAREID controls preload type=audio/mp3 width=290 src=&quot;&#39;.$swf_url.&#39;&quot;&gt;&lt;/audio&gt;&lt;script type=text/javascript&gt;jqm(&quot;#audioplayer_SHAREID&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span> return &#39;&lt;audio id=audioplayer_SHAREID controls preload type=audio/mp3 width=290 src=&quot;&#39;.$swf_url.&#39;&quot;&gt;&lt;/audio&gt;&lt;script type=text/javascript&gt;jqm(&quot;#audioplayer_SHAREID&quot;).mediaelementplayer( );&lt;/script&gt;&#39;;</span>

c)替換分享中的音樂播放器
需要改動的代碼在文件static/js/home.js 裡,將函數showFlash 中的下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">var musicFlash = &#39;&lt;object id=audioplayer_SHAREID height=24 width=290 data=&quot;&#39; + STATICURL + &#39;image/common/player.swf&quot; type=application/x-shockwave-flash&gt;&#39; + &#39;&lt;param value=&quot;&#39; + STATICURL + &#39;image/common/player.swf&quot; name=movie /&gt;&#39; + &#39;&lt;param value=autostart=yes&amp;bg=0xCDDFF3&amp;leftbg=0x357DCE&amp;lefticon=0xF2F2F2&amp;rightbg=0xF06A51&amp;rightbghover=0xAF2910&amp;righticon=0xF2F2F2&amp;righticonhover=0xFFFFFF&amp;text=0x357DCE&amp;slider=0x357DCE&amp;track=0xFFFFFF&amp;border=0xFFFFFF&amp;loader=0xAF2910&amp;soundFile=FLASHADDR name=FlashVars /&gt;&#39; + &#39;&lt;param value=high name=quality /&gt;&#39; + &#39;&lt;param value=false name=menu /&gt;&#39; + &#39;&lt;param value=#FFFFFF name=bgcolor /&gt;&#39; + &#39;&lt;/object&gt;&#39;;</span> var musicFlash = &#39;&lt;object id=audioplayer_SHAREID height=24 width=290 data=&quot;&#39; + STATICURL + &#39;image/common/player.swf&quot; type=application/x-shockwave-flash&gt;&#39; + &#39;&lt;param value=&quot;&#39; + STATICURL + &#39;image/common/player.swf&quot; name=movie /&gt;&#39; + &#39;&lt;param value=autostart=yes&amp;bg=0xCDDFF3&amp;leftbg=0x357DCE&amp;lefticon=0xF2F2F2&amp;rightbg=0xF06A51&amp;rightbghover=0xAF2910&amp;righticon=0xF2F2F2&amp;righticonhover=0xFFFFFF&amp;text=0x357DCE&amp;slider=0x357DCE&amp;track=0xFFFFFF&amp;border=0xFFFFFF&amp;loader= 0xAF2910&amp;soundFile=FLASHADDR name=FlashVars /&gt;&#39; + &#39;&lt;param value=high name=quality /&gt;&#39; + &#39;&lt;param value=false name=menu /&gt;&#39; + &#39;&lt;param value=#FFFFFF name=bgcolor /&gt;&#39; + &#39;&lt;/object&gt;&#39;;</span>
改為

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">var musicFlash = &#39;&lt;audio id=audioplayer_SHAREID controls preload autoplay type=audio/mp3 src=&quot;&#39; + flashvar + &#39;&quot;&gt;&lt;/audio&gt;&lt;script type=text/javascript&gt;jqm(&quot;#audioplayer_SHAREID&quot;).mediaelementplayer({ audioWidth: 290 });&lt;/script&gt;&#39;;</span> var musicFlash = &#39;&lt;audio id=audioplayer_SHAREID controls preload autoplay type=audio/mp3 src=&quot;&#39; + flashvar + &#39;&quot;&gt;&lt;/audio&gt;&lt;script type=text/javascript&gt;jqm(&quot;#audioplayer_SHAREID&quot;).mediaelementplayer({ audioWidth: 290 });&lt;/script&gt;&#39;;</span>
再在同一個函數里稍後的這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">flashObj.innerHTML = flashHtml;</span> flashObj.innerHTML = flashHtml;</span>
後加上

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">// http://stackoverflow.com/questions/2592092/executing-script-elements-inserted-with-innerhtml var codes = flashObj.getElementsByTagName(&quot;script&quot;); for (var i = 0; i &lt; codes.length; i++) eval(codes[i].text);</span> // http://stackoverflow.com/questions/2592092/executing-script-elements-inserted-with-innerhtml var codes = flashObj.getElementsByTagName(&quot;script&quot;); for (var i = 0; i &lt; codes.length; i++) eval(codes[i].text);</span>
最後再將函數stopMusic 裡的這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">$(musicFlash).SetVariable(&#39;closePlayer&#39;, 1);</span> $(musicFlash).SetVariable(&#39;closePlayer&#39;, 1);</span>
改成

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">$(musicFlash).player.pause();</span> $(musicFlash).player.pause();</span>

2。 替換視頻播放器
a)替換論壇中的視頻播放器在頁面上有兩個地方可以添加flv視頻:
舊播放器新播放器
需要改動的代碼在文件source/function/function_discuzcode.php 裡,將函數parsemedia 中的下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">return &#39;&lt;span id=&quot;&#39;.$randomid.&#39;&quot;&gt;&lt;/span&gt;&lt;script type=&quot;text/javascript&quot; reload=&quot;1&quot;&gt;$(\&#39;&#39;.$randomid.&#39;\&#39;).innerHTML=AC_FL_RunContent(\&#39;width\&#39;, \&#39;&#39;.$width.&#39;\&#39;, \&#39;height\&#39;, \&#39;&#39;.$height.&#39;\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\&#39;, \&#39;allowScriptAccess\&#39;, \&#39;never\&#39;, \&#39;src\&#39;, \&#39;&#39;.STATICURL.&#39;image/common/flvplayer.swf\&#39;, \&#39;flashvars\&#39;, \&#39;file=&#39;.rawurlencode($url).&#39;\&#39;, \&#39;quality\&#39;, \&#39;high\&#39;, \&#39;wmode\&#39;, \&#39;transparent\&#39;, \&#39;allowfullscreen\&#39;, \&#39;true\&#39;);&lt;/script&gt;&#39;;</span> return &#39;&lt;span id=&quot;&#39;.$randomid.&#39;&quot;&gt;&lt;/span&gt;&lt;script type=&quot;text/javascript&quot; reload=&quot;1&quot;&gt;$(\&#39;&#39;.$randomid.&#39;\&#39;).innerHTML= AC_FL_RunContent(\&#39;width\&#39;, \&#39;&#39;.$width.&#39;\&#39;, \&#39;height\&#39;, \&#39;&#39;.$height.&#39;\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\&#39;, \&#39; allowScriptAccess\&#39;, \&#39;never\&#39;, \&#39;src\&#39;, \&#39;&#39;.STATICURL.&#39;image/common/flvplayer.swf\&#39;, \&#39;flashvars\&#39;, \&#39;file=&#39;.rawurlencode($url) .&#39;\&#39;, \&#39;quality\&#39;, \&#39;high\&#39;, \&#39;wmode\&#39;, \&#39;transparent\&#39;, \&#39;allowfullscreen\&#39;, \&#39;true\&#39;);&lt;/script&gt;&#39;;</span>
改成

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">return &#39;&lt;video id=&quot;&#39;.$randomid.&#39;&quot; controls preload width=&quot;&#39;.$width.&#39;&quot; height=&quot;&#39;.$height.&#39;&quot; src=&quot;&#39;.$url.&#39;&quot; &gt;&lt;/video&gt;&lt;script type=&quot;text/javascript&quot;&gt;jqm(&quot;#&#39;.$randomid.&#39;&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span> return &#39;&lt;video id=&quot;&#39;.$randomid.&#39;&quot; controls preload width=&quot;&#39;.$width.&#39;&quot; height=&quot;&#39;.$height.&#39;&quot; src=&quot;&#39;.$url.&#39;&quot; &gt;&lt;/video &gt;&lt;script type=&quot;text/javascript&quot;&gt;jqm(&quot;#&#39;.$randomid.&#39;&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span>

b)替換日誌中的視頻播放器
需要改動的代碼在文件source/function/function_blog.php 裡,將函數blog_flash 中的下面這段

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">$html = &#39;&lt;span id=&quot;&#39;.$randomid.&#39;&quot;&gt;&lt;/span&gt;&lt;script type=&quot;text/javascript&quot; reload=&quot;1&quot;&gt;$(\&#39;&#39;.$randomid.&#39;\&#39;).innerHTML=AC_FL_RunContent(\&#39;width\&#39;, \&#39;&#39;.$width.&#39;\&#39;, \&#39;height\&#39;, \&#39;&#39;.$height.&#39;\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\&#39;, \&#39;allowScriptAccess\&#39;, \&#39;never\&#39;, \&#39;src\&#39;, \&#39;&#39;.STATICURL.&#39;image/common/flvplayer.swf\&#39;, \&#39;flashvars\&#39;, \&#39;file=&#39;.rawurlencode($swf_url).&#39;\&#39;, \&#39;quality\&#39;, \&#39;high\&#39;, \&#39;wmode\&#39;, \&#39;transparent\&#39;, \&#39;allowfullscreen\&#39;, \&#39;true\&#39;);&lt;/script&gt;&#39;;</span> $html = &#39;&lt;span id=&quot;&#39;.$randomid.&#39;&quot;&gt;&lt;/span&gt;&lt;script type=&quot;text/javascript&quot; reload=&quot;1&quot;&gt;$(\&#39;&#39;.$randomid.&#39;\&#39;). innerHTML=AC_FL_RunContent(\&#39;width\&#39;, \&#39;&#39;.$width.&#39;\&#39;, \&#39;height\&#39;, \&#39;&#39;.$height.&#39;\&#39;, \&#39;allowNetworking\&#39;, \&#39;internal\&#39;, \&#39;allowScriptAccess\&#39;, \&#39;never\&#39;, \&#39;src\&#39;, \&#39;&#39;.STATICURL.&#39;image/common/flvplayer.swf\&#39;, \&#39;flashvars\&#39;, \&#39;file=&#39;.rawurlencode($ swf_url).&#39;\&#39;, \&#39;quality\&#39;, \&#39;high\&#39;, \&#39;wmode\&#39;, \&#39;transparent\&#39;, \&#39;allowfullscreen\&#39;, \&#39;true\&#39;);&lt;/script&gt;&#39;;</span>
改成

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">$html = &#39;&lt;video id=&quot;&#39;.$randomid.&#39;&quot; controls preload width=&quot;&#39;.$width.&#39;&quot; height=&quot;&#39;.$height.&#39;&quot; src=&quot;&#39;.$swf_url.&#39;&quot; &gt;&lt;/video&gt;&lt;script type=&quot;text/javascript&quot;&gt;jqm(&quot;#&#39;.$randomid.&#39;&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span> $html = &#39;&lt;video id=&quot;&#39;.$randomid.&#39;&quot; controls preload width=&quot;&#39;.$width.&#39;&quot; height=&quot;&#39;.$height.&#39;&quot; src=&quot;&#39;.$swf_url.&#39;&quot; &gt;&lt; /video&gt;&lt;script type=&quot;text/javascript&quot;&gt;jqm(&quot;#&#39;.$randomid.&#39;&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span>

c)替換分享中的視頻播放器
需要改動的代碼在文件source/include/spacecp/spacecp_share.php 裡,將下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">&#39;flv&#39; =&gt; $_G[&#39;style&#39;][&#39;imgdir&#39;].&#39;/flvplayer.swf?&amp;autostart=true&amp;file=&#39;.urlencode($link),</span> &#39;flv&#39; =&gt; $_G[&#39;style&#39;][&#39;imgdir&#39;].&#39;/flvplayer.swf?&amp;autostart=true&amp;file=&#39;.urlencode($link),</span>
改成

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">&#39;flv&#39; =&gt; $link,</span> &#39;flv&#39; =&gt; $link,</span>
再在文件static/js/home.js 裡,將函數showFlash 中的下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">var videoFlash = &#39;&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; width=&quot;480&quot; height=&quot;450&quot;&gt;&#39; + &#39;&lt;param value=&quot;transparent&quot; name=&quot;wmode&quot;/&gt;&#39; + &#39;&lt;param value=&quot;FLASHADDR&quot; name=&quot;movie&quot; /&gt;&#39; + &#39;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;never&quot; /&gt;&#39; + &#39;&lt;param name=&quot;allowNetworking&quot; value=&quot;none&quot; /&gt;&#39; + &#39;&lt;embed src=&quot;FLASHADDR&quot; wmode=&quot;transparent&quot; allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;480&quot; height=&quot;450&quot; allowScriptAccess=&quot;never&quot; allowNetworking=&quot;internal&quot;&gt;&lt;/embed&gt;&#39; + &#39;&lt;/object&gt;&#39;;</span> var videoFlash = &#39;&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; width=&quot;480&quot; height=&quot;450&quot;&gt;&#39; + &#39;&lt;param value=&quot;transparent&quot; name=&quot;wmode&quot;/&gt;&#39; + &#39;&lt;param value=&quot;FLASHADDR&quot; name=&quot;movie&quot; /&gt;&#39; + &#39;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;never&quot; /&gt;&#39; + &#39;&lt;param name=&quot;allowNetworking&quot; value=&quot;none&quot; /&gt; &#39; + &#39;&lt;embed src=&quot;FLASHADDR&quot; wmode=&quot;transparent&quot; allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;480&quot; height=&quot;450&quot; allowScriptAccess=&quot;never&quot; allowNetworking=&quot;internal &quot;&gt;&lt;/embed&gt;&#39; + &#39;&lt;/object&gt;&#39;;</span>
後加上

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">var videoHtml5 = &#39;&lt;video id=&quot;videoplayer_SHAREID&quot; controls preload autoplay width=&quot;480&quot; height=&quot;450&quot; src=&quot;&#39; + flashvar + &#39;&quot; &gt;&lt;/video&gt;&lt;script type=&quot;text/javascript&quot;&gt;jqm(&quot;#videoplayer_SHAREID&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span> var videoHtml5 = &#39;&lt;video id=&quot;videoplayer_SHAREID&quot; controls preload autoplay width=&quot;480&quot; height=&quot;450&quot; src=&quot;&#39; + flashvar + &#39;&quot; &gt;&lt;/video&gt;&lt;script type=&quot;text/javascript&quot;&gt;jqm( &quot;#videoplayer_SHAREID&quot;).mediaelementplayer();&lt;/script&gt;&#39;;</span>
再在同一個函數里稍後的這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">flashvar = encodeURI(flashvar);</span> flashvar = encodeURI(flashvar);</span>
前加上

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">var flvReg = new RegExp(&#39;.flv$&#39;, &#39;ig&#39;); if (flvReg.test(flashvar)) { flashHtml = videoHtml5; }</span> var flvReg = new RegExp(&#39;.flv$&#39;, &#39;ig&#39;); if (flvReg.test(flashvar)) { flashHtml = videoHtml5; }</span>
上面的修改僅涉及原來Discuz的支持flv格式的視頻播放器。但在這基礎上略做改動也能支持當前最流行的視頻格式mp4。
a)論壇首先要改動文件static/js/editor.js 將下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">ext = in_array(ext, [&#39;mp3&#39;, &#39;wma&#39;, &#39;ra&#39;, &#39;rm&#39;, &#39;ram&#39;, &#39;mid&#39;, &#39;asx&#39;, &#39;wmv&#39;, &#39;avi&#39;, &#39;mpg&#39;, &#39;mpeg&#39;, &#39;rmvb&#39;, &#39;asf&#39;, &#39;mov&#39;, &#39;flv&#39;, &#39;swf&#39;]) ? ext : &#39;x&#39;;</span> ext = in_array(ext, [&#39;mp3&#39;, &#39;wma&#39;, &#39;ra&#39;, &#39;rm&#39;, &#39;ram&#39;, &#39;mid&#39;, &#39;asx&#39;, &#39;wmv&#39;, &#39;avi&#39;, &#39;mpg&#39;, &#39;mpeg&#39; , &#39;rmvb&#39;, &#39;asf&#39;, &#39;mov&#39;, &#39;flv&#39;, &#39;swf&#39;]) ? ext : &#39;x&#39;;</span>
改成

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">ext = in_array(ext, [&#39;mp4&#39;, &#39;mp3&#39;, &#39;wma&#39;, &#39;ra&#39;, &#39;rm&#39;, &#39;ram&#39;, &#39;mid&#39;, &#39;asx&#39;, &#39;wmv&#39;, &#39;avi&#39;, &#39;mpg&#39;, &#39;mpeg&#39;, &#39;rmvb&#39;, &#39;asf&#39;, &#39;mov&#39;, &#39;flv&#39;, &#39;swf&#39;]) ? ext : &#39;x&#39;;</span> ext = in_array(ext, [&#39;mp4&#39;, &#39;mp3&#39;, &#39;wma&#39;, &#39;ra&#39;, &#39;rm&#39;, &#39;ram&#39;, &#39;mid&#39;, &#39;asx&#39;, &#39;wmv&#39;, &#39;avi&#39;, &#39;mpg&#39; , &#39;mpeg&#39;, &#39;rmvb&#39;, &#39;asf&#39;, &#39;mov&#39;, &#39;flv&#39;, &#39;swf&#39;]) ? ext : &#39;x&#39;;</span>
其次在文件source/function/function_discuzcode.php 裡,將函數parsemedia 中的下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">case &#39;flv&#39;:</span> case &#39;flv&#39;:</span>
後加上

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">case &#39;mp4&#39;:</span> case &#39;mp4&#39;:</span>
b)日誌不需額外改動
c)分享在文件source/include/spacecp/spacecp_share.php 裡,將下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">if(empty($flashvar) &amp;&amp; preg_match(&quot;/\.flv$/i&quot;, $link)) {</span> if(empty($flashvar) &amp;&amp; preg_match(&quot;/\.flv$/i&quot;, $link)) {</span>
改成

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">if(empty($flashvar) &amp;&amp; preg_match(&quot;/\.(flv|mp4)$/i&quot;, $link)) {</span> if(empty($flashvar) &amp;&amp; preg_match(&quot;/\.(flv|mp4)$/i&quot;, $link)) {</span>
再在文件static/js/home.js 裡,將函數showFlash 中的下面這句

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">var flvReg = new RegExp(&#39;.flv$&#39;, &#39;ig&#39;);</span> var flvReg = new RegExp(&#39;.flv$&#39;, &#39;ig&#39;);</span>
改成

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">var flvReg = new RegExp(&#39;.(flv|mp4)$&#39;, &#39;ig&#39;);</span> var flvReg = new RegExp(&#39;.(flv|mp4)$&#39;, &#39;ig&#39;);</span>

3。 替換個人空間裡的音樂盒 <br>在前文( 鏈接 )中我們討論過基於mejs的音樂盒插件,它能夠即插即用,不影響網站裡的其它功能。 不管是用插件還是修改代碼,為了有統一的風格,整個網站最好還是用同一個播放器。
舊播放器新播放器
下面我們討論通過修改代碼來使用基於mejs的音樂盒。 除了用mejs外,還有用到一個mejs插件mep-feature-playlist-master 和一個jQuery插件m-custom-scrollbar。 首先將前面對template/default/common/header_common.htm 的修改再改為

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">&lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}jquery.min.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}mediaelement/mediaelement-and-player.min.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}mep-feature-playlist-master/mep-feature-playlist.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}m-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js&quot;&gt;&lt;/script&gt; &lt;link rel=&quot;stylesheet&quot; href=&quot;{$_G[setting][jspath]}mediaelement/mediaelementplayer.min.css&quot; /&gt; &lt;link href=&quot;{$_G[setting][jspath]}mep-feature-playlist-master/mep-feature-playlist.css&quot; rel=&quot;stylesheet&quot; /&gt; &lt;link href=&quot;{$_G[setting][jspath]}m-custom-scrollbar/jquery.mCustomScrollbar.css&quot; rel=&quot;stylesheet&quot; /&gt; &lt;script type=&quot;text/javascript&quot;&gt; var jqm = jQuery.noConflict(true); &lt;/script&gt;</span> &lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}jquery.min.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting ][jspath]}mediaelement/mediaelement-and-player.min.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}mep-feature-playlist- master/mep-feature-playlist.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;{$_G[setting][jspath]}m-custom-scrollbar/jquery.mCustomScrollbar.concat.min .js&quot;&gt;&lt;/script&gt; &lt;link rel=&quot;stylesheet&quot; href=&quot;{$_G[setting][jspath]}mediaelement/mediaelementplayer.min.css&quot; /&gt; &lt;link href=&quot;{$_G[setting][ jspath]}mep-feature-playlist-master/mep-feature-playlist.css&quot; rel=&quot;stylesheet&quot; /&gt; &lt;link href=&quot;{$_G[setting][jspath]}m-custom-scrollbar/jquery.mCustomScrollbar .css&quot; rel=&quot;stylesheet&quot; /&gt; &lt;script type=&quot;text/javascript&quot;&gt; var jqm = jQuery.noConflict(true); &lt;/script&gt;</span>
接著要修改的代碼是文件source/function/function_space.php 裡的函數getblockhtml 中的有關music 的部分:

<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">$authcode = substr(md5($_G[&#39;authkey&#39;].$uid), 6, 16); $view = ($_G[&#39;adminid&#39;] == 1 &amp;&amp; $_G[&#39;setting&#39;][&#39;allowquickviewprofile&#39;]) ? &#39;&amp;view=admin&#39; : &#39;&#39;; $querystring = urlencode(&quot;home.php?mod=space&amp;uid=$uid&amp;do=index&amp;op=getmusiclist&amp;hash=$authcode$view&amp;t=&quot;.TIMESTAMP); $swfurl = STATICURL.&#39;image/common/mp3player.swf?config=&#39;.$querystring; if(empty($parameters[&#39;config&#39;][&#39;height&#39;]) &amp;&amp; $parameters[&#39;config&#39;][&#39;height&#39;] !== 0) { $parameters[&#39;config&#39;][&#39;height&#39;] = &#39;200px&#39;; } else { $parameters[&#39;config&#39;][&#39;height&#39;] .= &#39;px&#39;; } $html = &quot;&lt;script language=\&quot;javascript\&quot; type=\&quot;text/javascript\&quot;&gt;document.write(AC_FL_RunContent(&#39;id&#39;, &#39;mp3player&#39;, &#39;name&#39;, &#39;mp3player&#39;, &#39;devicefont&#39;, &#39;false&#39;, &#39;width&#39;, &#39;100%&#39;, &#39;height&#39;, &#39;&quot;.$parameters[&#39;config&#39;][&#39;height&#39;].&quot;&#39;, &#39;src&#39;, &#39;$swfurl&#39;, &#39;menu&#39;, &#39;false&#39;, &#39;allowScriptAccess&#39;, &#39;never&#39;, &#39;swLiveConnect&#39;, &#39;true&#39;, &#39;wmode&#39;, &#39;transparent&#39;));&lt;/script&gt;&quot;;</span> $authcode = substr(md5($_G[&#39;authkey&#39;].$uid), 6, 16); $view = ($_G[&#39;adminid&#39;] == 1 &amp;&amp; $_G[&#39;setting&#39;][&#39;allowquickviewprofile&#39; ]) ? &#39;&amp;view=admin&#39; : &#39;&#39;; $querystring = urlencode(&quot;home.php?mod=space&amp;uid=$uid&amp;do=index&amp;op=getmusiclist&amp;hash=$authcode$view&amp;t=&quot;.TIMESTAMP); $swfurl = STATICURL.&#39;image /common/mp3player.swf?config=&#39;.$querystring; if(empty($parameters[&#39;config&#39;][&#39;height&#39;]) &amp;&amp; $parameters[&#39;config&#39;][&#39;height&#39;] !== 0) { $parameters[&#39;config&#39;][&#39;height&#39;] = &#39;200px&#39;; } else { $parameters[&#39;config&#39;][&#39;height&#39;] .= &#39;px&#39;; } $html = &quot;&lt;script language=\&quot;javascript \&quot; type=\&quot;text/javascript\&quot;&gt;document.write(AC_FL_RunContent(&#39;id&#39;, &#39;mp3player&#39;, &#39;name&#39;, &#39;mp3player&#39;, &#39;devicefont&#39;, &#39;false&#39;, &#39;width&#39;, &#39;100%&#39; , &#39;height&#39;, &#39;&quot;.$parameters[&#39;config&#39;][&#39;height&#39;].&quot;&#39;, &#39;src&#39;, &#39;$swfurl&#39;, &#39;menu&#39;, &#39;false&#39;, &#39;allowScriptAccess&#39;, &#39;never&#39;, &#39; swLiveConnect&#39;, &#39;true&#39;, &#39;wmode&#39;, &#39;transparent&#39;));&lt;/script&gt;&quot;;</span>
將它改為


<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">if(empty($parameters[&#39;config&#39;][&#39;height&#39;]) &amp;&amp; $parameters[&#39;config&#39;][&#39;height&#39;] !== 0) { $height = 200; } else { $height = $parameters[&#39;config&#39;][&#39;height&#39;]; } $plheight = $height - 28; $shuffle = ($parameters[&#39;config&#39;][&#39;shuffle&#39;])?&#39;true&#39;:&#39;false&#39;; $autoplay = $parameters[&#39;config&#39;][&#39;autorun&#39;]; $showmodbig = ($parameters[&#39;config&#39;][&#39;showmod&#39;]==&#39;big&#39;); $audioHeight = 30; if ($showmodbig) { $audioHeight += 50; $plheight -= 50; } $html = &lt;&lt;&lt;EOF &lt;style&gt; .mejs-layers .mejs-playlist { overflow-x: hidden; overflow-y: auto; } ul.mejs li { width: 100%; font-size: 10px; text-align: left; padding-left: 6px; } .mejs-playlist li:hover { color: white; } .mejs-playlist li.current { color: yellow; font-weight: bold; } .mejs-poster { max-width: 40px; max-height: 40px; margin: 5px; } .mejs-title { position: absolute; left: 50px; top: 0px; margin: 10px; color: white; font-size: 10px; font-weight: bold; width: auto !important; } .ml span { color: white; } .mejs-controls .mejs-volume-button .mejs-volume-slider { h</span> if(empty($parameters[&#39;config&#39;][&#39;height&#39;]) &amp;&amp; $parameters[&#39;config&#39;][&#39;height&#39;] !== 0) { $height = 200; } else { $height = $parameters[ &#39;config&#39;][&#39;height&#39;]; } $plheight = $height - 28; $shuffle = ($parameters[&#39;config&#39;][&#39;shuffle&#39;])?&#39;true&#39;:&#39;false&#39;; $autoplay = $parameters [&#39;config&#39;][&#39;autorun&#39;]; $showmodbig = ($parameters[&#39;config&#39;][&#39;showmod&#39;]==&#39;big&#39;); $audioHeight = 30; if ($showmodbig) { $audioHeight += 50 ; $plheight -= 50; } $html = &lt;&lt;&lt;EOF &lt;style&gt; .mejs-layers .mejs-playlist { overflow-x: hidden; overflow-y: auto; } ul.mejs li { width: 100%; font-size: 10px; text-align: left; padding-left: 6px; } .mejs-playlist li:hover { color: white; } .mejs-playlist li.current { color: yellow; font-weight: bold; } .mejs-poster { max-width: 40px; max-height: 40px; margin: 5px; } .mejs-title { position: absolute; left: 50px; top: 0px; margin: 10px; color: white; font- size: 10px; font-weight: bold; width: auto !important; } .ml span { color: white; } .mejs-controls .mejs-volume-button .mejs-volume-slider { h</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">eight: 65px; top: -65px; } .mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total { height: 50px; } .mCSB_scrollTools { width: 8px; } .mCSB_inside &gt; .mCSB_container { margin-right: 0; } .mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 0.5); } .mCS-minimal.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 0.8); } .mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 1); } .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical { margin: 1px 0; } .mCS-autoHide &gt; .mCustomScrollBox &gt; .mCSB_scrollTools, .mCS-autoHide &gt; .mCustomScrollBox ~ .mCSB_scrollTools { opacity: 1; } .mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail { background-color: darkgray; } .mejs-layers .mejs-playlist { height: {$plheight}px !important; } </span> eight: 65px; top: -65px; } .mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total { height: 50px; } .mCSB_scrollTools { width: 8px; } .mCSB_inside &gt; . mCSB_container { margin-right: 0; } .mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 0.5); } .mCS-minimal.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { background -color: rgba(0, 156, 229, 0.8); } .mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar { background-color: rgba(0, 156, 229, 1); } .mCSB_outside + .mCS- minimal.mCSB_scrollTools_vertical, .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical { margin: 1px 0; } .mCS-autoHide &gt; .mCustomScrollBox &gt; .mCSB_scrollTools, .mCS-autoHide &gt; .mCustomScrollBox ~ .mCSB_scrollTools { opacity: 1; } . mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail { background-color: darkgray; } .mejs-layers .mejs-playlist { height: {$plheight}px !important; }</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">EOF; if ($showmodbig==false) { $html .= &lt;&lt;&lt;EOF .mejs-poster, .mejs-title { left: -9999px; } EOF; } $html .= &lt;&lt;&lt;EOF &lt;/style&gt; &lt;audio id=&quot;mejs&quot; type=&quot;audio/mp3&quot; controls=&quot;controls&quot; width=&quot;100%&quot; EOF; if ($autoplay == &#39;true&#39;) $html .= &#39; autoplay=&quot;autoplay&quot;&#39;; $html .= &#39;&gt;&#39;; foreach ($parameters[&#39;mp3list&#39;] as $mp3) { $html .= &#39;&lt;source src=&quot;&#39;.$mp3[mp3url].&#39;&quot; title=&quot;&#39;.$mp3[mp3name].&#39;&quot; data-poster=&quot;&#39;.$mp3[cdbj].&#39;&quot;&gt;&lt;/source&gt;&#39;; } $html .= &lt;&lt;&lt;EOF &lt;/audio&gt; &lt;script type=&quot;text/javascript&quot;&gt; jqm(document).ready(function () { jqm(&quot;#music_content &gt; .ml&quot;).height({$height}); jqm(&#39;#mejs&#39;).mediaelementplayer({ loop: true, shuffle: {$shuffle}, playlist: true, audioHeight: {$audioHeight}, audioVolume: &quot;vertical&quot;, playlistposition: &#39;bottom&#39;, features: [&#39;playlistfeature&#39;, &#39;prevtrack&#39;, &#39;playpause&#39;, &#39;stop&#39;, &#39;nexttrack&#39;, &#39;current&#39;, &#39;progress&#39;, &#39;duration&#39;, &#39;volume&#39;], keyActions: [] }); if (jqm(&#39;#music_content &gt; .ml&#39;).width() &lt; 250) { jqm(&#39;.mejs-prevtrack-button, .mejs-nexttrack-button&#39;).css({ &#39;display&#39;: &#39;none&#39; }); } /</span> EOF; if ($showmodbig==false) { $html .= &lt;&lt;&lt;EOF .mejs-poster, .mejs-title { left: -9999px; } EOF; } $html .= &lt;&lt;&lt;EOF &lt;/style&gt; &lt;audio id=&quot;mejs&quot; type=&quot;audio/mp3&quot; controls=&quot;controls&quot; width=&quot;100%&quot; EOF; if ($autoplay == &#39;true&#39;) $html .= &#39; autoplay=&quot;autoplay&quot;&#39;; $ html .= &#39;&gt;&#39;; foreach ($parameters[&#39;mp3list&#39;] as $mp3) { $html .= &#39;&lt;source src=&quot;&#39;.$mp3[mp3url].&#39;&quot; title=&quot;&#39;.$mp3[mp3name ].&#39;&quot; data-poster=&quot;&#39;.$mp3[cdbj].&#39;&quot;&gt;&lt;/source&gt;&#39;; } $html .= &lt;&lt;&lt;EOF &lt;/audio&gt; &lt;script type=&quot;text/javascript&quot;&gt; jqm (document).ready(function () { jqm(&quot;#music_content &gt; .ml&quot;).height({$height}); jqm(&#39;#mejs&#39;).mediaelementplayer({ loop: true, shuffle: {$shuffle} , playlist: true, audioHeight: {$audioHeight}, audioVolume: &quot;vertical&quot;, playlistposition: &#39;bottom&#39;, features: [&#39;playlistfeature&#39;, &#39;prevtrack&#39;, &#39;playpause&#39;, &#39;stop&#39;, &#39;nexttrack&#39;, &#39;current&#39; , &#39;progress&#39;, &#39;duration&#39;, &#39;volume&#39;], keyActions: [] }); if (jqm(&#39;#music_content &gt; .ml&#39;).width() &lt; 250) { jqm(&#39;.mejs-prevtrack-button , .mejs-nexttrack-button&#39;).css({ &#39;display&#39;: &#39;none&#39; }); } /</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">/ remove a suspicious element that causes the page content to be smaller on iPhone and iPad jqm(&#39;.mejs-offscreen&#39;).remove(); jqm(&#39;.mejs-playlist&#39;).mCustomScrollbar({ theme: &quot;minimal&quot; }); }); &lt;/script&gt; EOF;</span> / remove a suspicious element that causes the page content to be smaller on iPhone and iPad jqm(&#39;.mejs-offscreen&#39;).remove(); jqm(&#39;.mejs-playlist&#39;).mCustomScrollbar({ theme: &quot;minimal&quot; } ); }); &lt;/script&gt; EOF;</span>

 ※檔案部分,目前是採用彼岸網來源,看後續是否有人需要下載下來觀看,我這邊會再另外找一個空見放看看,但是這個礙於要占用所以目前不考量。


 HF:小說明,初次使用之後確實替換了Discuz原始播放器,但是這邊要注意一件事情會出現一個小錯誤,你會無法找到js相關檔案,這邊需要至後台>全局>性能優化,將js緩存目錄更改至默認目錄 static/js/,這樣就不會出現錯誤了。


出處:彼岸網
作者:天香公主
翻譯及修改部分文句:HF
原網址:點我

留言

這個網誌中的熱門文章