相信使用discuz论坛发视频或音乐的朋友也遇到跟我一样的难题吧!浏览帖子时视频或音乐都不能自动播放,非要用户去点才可以,这样对网站的用户体验相当不好,因为用户本身就是很懒的;      还有如果添加的视频链接是MP4格式的,浏览时并不是视频,而是视频的链接,这里的种种问题,小弟前两天到解决的方法,希望共享出来能帮助大家!

      PS:有钱出钱,没钱出力哈!

         首先说明:以下所操作的都是在dz X2的基础上,其他版本请参考程序进行修改。下面有提供懒人更新包,可以直接覆盖,前提是你没有对里面的文件修改过!懂的人可以闪过哈!

1、打开文件: static/js/editor.js
a> 音乐自动播放操作如下:
到这段代码: <p class="pbn">请输入音乐文件地址:</p>
1. str = '<p class="pbn">请输入音乐文件地址:</p><p class="pbn"><input type="text" id="' + ctrlid + '_param_1" class="px" value="" /></p><p class="xg2 pbn">支持
网页自动播放音乐代码wma mp3 ra rm 等音乐格式<br />示例: server/audio.wma</p>';
复制代码

替换为(红表示添加代码):
1. str = '<p class="pbn">请输入音乐文件地址:</p><p class="pbn"><input type="text" id="' + ctrlid + '_param_1" class="px" value="" /></p><p class="pbn"><label for="' + ctrlid + '_param_2"><input type="checkbox" id="' + ctrlid + '_param_2" class="pc" value="1"/> 是否自动播放</label><br /></p><p class="xg2 pbn">支持 wma mp3 ra rm 等音乐格式<br />示例: server/audio.wma</p>';
复制代码

-------------------------------------------------------------可爱的分割线----------------------------------------------------------------------


到这段代码: insertText('\' + $(ctrlid + \'_param_1\').value + \'', 7, 8, false, sel);
1. insertText('[audio]' + $(ctrlid + '_param_1').value + '[/audio]', 7, 8, false, sel);
复制代码
替换为:
1. var auto = $(ctrlid + '_param_2').checked ? '=1' : '';
2. insertText('[audio' + auto +']' + $(ctrlid + '_param_1').value + '[/audio]', 7, 8, false, sel);
复制代码

-------------------------------------------------------------可爱的分割线----------------------------------------------------------------------

b>视频自动播放操作如下:
到这段代码: <p class="pbn">请输入视频地址:</p>
1. str = '<p class="pbn">请输入视频地址:</p><p class="pbn"><input type="text" value="" id="' + ctrlid + '_param_1" class="px" /></p><p class="pbn">: <input id="' + ctrlid + '_param_2" size="5" value="500" class="px" />   : <input id="' + ctrlid + '_param_3" size="5" value="375" class="px" /></p><p class="xg2 pbn">支持优酷、土豆、56、酷6等视频站的视频网址<br />支持 wmv avi rmvb mov swf flv 等视频格式<br />示例: server/movie.wmv</p>';
复制代码

替换为(红表示添加代码):
1. str = '<p class="pbn">请输入视频地址:</p><p class="pbn"><input type="text" value="" id="' + ctrlid + '_param_1" class="px" /></p><p class="pbn">: <inpu
t id="' + ctrlid + '_param_2" size="5" value="500" class="px" />   : <input id="' + ctrlid + '_param_3" size="5" value="375" class="px" /></p><p class="pbn"><label for="' + ctrlid + '_param_4"><input type="checkbox" id="' + ctrlid + '_param_4" class="pc" value="1"/> 是否自动播放</label><br /></p><p class="xg2 pbn">支持优酷、土豆、56、酷6等视频站的视频网址<br />支持 wmv avi rmvb mov swf flv 等视频格式<br />示例: server/movie.wmv</p>';
复制代码

-------------------------------------------------------------可爱的分割线----------------------------------------------------------------------

到这段代码: var str = '[media=' + ext + ',' + $(ctrlid + '_param_2').value + ',' + $(ctrlid + '_param_3').value + ']' + mediaUrl + '[/media]';
1. var str = '[media=' + ext + ',' + $(ctrlid + '_param_2').value + ',' + $(ctrlid + '_param_3').val
ue + ']' + mediaUrl + '[/media]';
复制代码
替换为(红表示添加代码):
1. auto = $(ctrlid + '_param_4').checked ? ',1' : ',0';
2. var str = '[media=' + ext + ',' + $(ctrlid + '_param_2').value + ',' + $(ctrlid + '_param_3').value + auto + ']' + mediaUrl + '[/media]';
复制代码


2、打开文件:source/function/function_discuzcode.php
a> 音乐自动播放操作如下:
到这段代码: if(strpos($msglower, '[/audio]')
1. if(strpos($msglower, '[/audio]') !== FALSE) {
2.                         $message = preg_replace("/\[audio(=1)*\]\s*([^\[\<\r\n]+?)\s*\[\/audio\]/ies", $allowmediacode ? "parseaudio('\\2', 400)" : "bbcodeurl('\\2', '<a href=\"{url}\" target=\"_blank\">{url}</a>')", $message);
3. }
复制代码

替换为(红表示添加代码):
1. if(strpos($msglower, '[/audio]') !== FALSE) {
2.                         $message = preg_replace("/\[audio(=1)*\]\s*([^\[\<\r\n]+?)\s*\[\/audio\]/ies", $allowmediacode ? "parseaudio('\\2', 400, '\\1')" : "bbcodeurl('\\2', '<a href=\"{url}\" target=\"_blank\">{url}</a>')", $message);
3. }
复制代码


-------------------------------------------------------------可爱的分割线----------------------------------------------------------------------

到这段代码: function parseaudio($url, $width = 400)
1. function parseaudio($url, $width = 400) {
2. $ext = strtolower(substr(strrchr($url, '.'), 1, 5));
3. switch($ext) {
4. case 'mp3':
5. case 'wma':
6. case 'mid':
7. case 'wav':
8. return '<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="'.$width.'" height="64"><param name="invokeURLs" value="0"><param name="autostart" value="0" /><param name="url" value="'.$url.'" /><embed src="'.$url.'" autostart="0" type="application/x-mplayer2" width="'.$width.'" height="64"></embed></object>';
9. case 'ra':
10. case 'rm':
11. case 'ram':
12. $mediaid = 'media_'.random(3);
13. return '<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="'.$width.'" height="32"><param name="autostart" value="0" /><param name="src" value="'.$url.'" /><param name="controls" value="controlpanel" /><param name="console" value="'.$mediaid.'_" /><embed src="'.$url.'" autostart="0" type="audio/x-pn-realaudio-plugin" controls="ControlPanel" console="'.$mediaid.'_" width="'.$width.'" height="32"></embed></object>';

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。