您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程

discuz添加兼容html5标签音乐播放器的办法

翠萱2025-07-02Discuz教程已有人查阅

导读关于在discuz中mp3附件自动添加Windows Media播放器插件的方法的文章网上有很多,只要修改./templates/default/discuzcode.htm文件就可以了

关于在discuz中mp3附件自动添加Windows Media播放器插件的方法的文章网上有很多,只要修改./templates/default/discuzcode.htm文件就可以了,但是毕竟不是所有浏览器都装有wm播放器插件的,而flash播放器就不同了,除了iOS以外应该都是支持的。
一个wordpress播放器插件(Degradable HTML5 audio and video)很不错,支持html5,于是把它作为论坛的音乐播放器。
刚开始只是直接拿flash播放器播放,可是发现chrome对它支持很不好,无法显示文件名和进度,更无法调节,于是决定改用html5标签。
下载插件,解压,取出player.swf,放到images/common/目录,然后用添加wm的同样的方法修改templates/default/discuzcode.htm文件,插入代码:
<!--{if fileext($attach['filename']) == 'mp3'}-->
<p><audio loop controls >
<source type="audio/mpeg" src="attachment.php?aid=$aidencode">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="290" height="24" class="attachment">
<param name="movie" value="images/common/player.swf?soundFile=attachment.php?aid=$aidencode%3D&bg=0xCDDFF3&leftbg=0x357DCE&lefticon=0xF2F2F2&rightbg=0x357DCE&rightbghover=0x4499EE&righticon=0xF2F2F2&righticonhover=0xFFFFFF&text=0x357DCE&slider=0x357DCE&track=0xFFFFFF&border=0xFFFFFF&loader=0x8EC2F4&autostart=no&loop=no" />
<param name="quality" value="high" />
<param value="transparent" name="wmode" />
<embed src="images/common/player.swf?soundFile=attachment.php?aid=$aidencode%3D&bg=0xCDDFF3&leftbg=0x357DCE&lefticon=0xF2F2F2&rightbg=0x357DCE&rightbghover=0x4499EE&righticon=0xF2F2F2&righticonhover=0xFFFFFF&text=0x357DCE&slider=0x357DCE&track=0xFFFFFF&border=0xFFFFFF&loader=0x8EC2F4&autostart=no&loop=no" width="290" height="24" quality="high" pluginspage="http:// .macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</object></audio></p>
<!--{/if}-->
这样,在支持html5的浏览器里显示html5播放器,而在不支持的浏览器中audio将不被识别,只是里面的flash播放器代码起作用。可是这里有个问题,Firefox支持audio标签,可是它只支持Ogg Vorbis和Wav,那只能让它使用flash播放了。可是怎么把播放器代码剥离出来呢?那就试试javascript吧。原先模块里有解决方法,但是使用的是jQuery库,只是实现一个小功能,就不调用70多k的代码了,自己写一个。
在</audio>标签后加入:
<script type="text/javascript">if (isFirefox=navigator.userAgent.indexOf("Firefox")>0) {dst=document.getElementsByTagName("audio")[0]; up=document.getElementsByTagName("object")[0]; dst.parentNode.removeChild(dst); document.write(up.outerHTML);}</script>
可是保存了以后打开论坛,发现discuz给自动转换成wm代码了,费解。难道是只能提取非html标签?那就在object标签外边加个自定义标签player:
<!--{if fileext($attach['filename']) == 'mp3'}-->
<p><audio loop controls >
<source type="audio/mpeg" src="attachment.php?aid=$aidencode">
<player><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="290" height="24" class="attachment">
<param name="movie" value="images/common/player.swf?soundFile=attachment.php?aid=$aidencode%3D&bg=0xCDDFF3&leftbg=0x357DCE&lefticon=0xF2F2F2&rightbg=0x357DCE&rightbghover=0x4499EE&righticon=0xF2F2F2&righticonhover=0xFFFFFF&text=0x357DCE&slider=0x357DCE&track=0xFFFFFF&border=0xFFFFFF&loader=0x8EC2F4&autostart=no&loop=no" />
<param name="quality" value="high" />
<param value="transparent" name="wmode" />
<embed src="images/common/player.swf?soundFile=attachment.php?aid=$aidencode%3D&bg=0xCDDFF3&leftbg=0x357DCE&lefticon=0xF2F2F2&rightbg=0x357DCE&rightbghover=0x4499EE&righticon=0xF2F2F2&righticonhover=0xFFFFFF&text=0x357DCE&slider=0x357DCE&track=0xFFFFFF&border=0xFFFFFF&loader=0x8EC2F4&autostart=no&loop=no" width="290" height="24" quality="high" pluginspage="http:// .macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</object></player></audio>
<script type="text/javascript">if (isFirefox=navigator.userAgent.indexOf("Firefox")>0) {dst=document.getElementsByTagName("audio")[0]; up=document.getElementsByTagName("player")[0]; dst.parentNode.removeChild(dst); document.write(up.outerHTML);
}</script></p>
<!--{/if}-->
嗯,这回不错,Chrome显示的是audio播放器,Firefox显示的是flash播放器。
附discuz音频文件上传后自动添加播放器方法:
<dl class="t_attachlist">
之前添加:
<!--Alioth Music Start-->
<!--{if fileext($attach['filename']) == 'mp3'}-->
<p><object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="400" height="64"><param name="autostart" value="0" /><param name="url" value="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" /><param name="PlayCount" value="100" /><embed src="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" autostart="0" type="application/x-mplayer2" width="400" height="64"></embed></object></p>
<!--{elseif fileext($attach['filename']) == 'wma'}-->
<p><object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="400" height="64"><param name="autostart" value="0" /><param name="url" value="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" /><param name="PlayCount" value="100" /><embed src="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" autostart="0" type="audio/x-ms-wma" width="400" height="64"></embed></object></p>
<br><br><br>
<!--{/if}-->
<!--Alioth Music End-->
$attach[attachicon] <span style="white-space: nowrap" id="attach_$attach[aid]" onmouseover="showMenu(this.id, false, 2)"><a href="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp&sid=$sidauth" target="_blank"><strong>$attach[filename]</strong></a></span> ($attach[attachsize])前添加:
<!--Alioth Music Start-->
<!--{if fileext($attach['filename']) == 'mp3'}-->
<p><object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="400" height="64"><param name="autostart" value="0" /><param name="url" value="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" /><param name="PlayCount" value="100" /><embed src="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" autostart="0" type="application/x-mplayer2" width="400" height="64"></embed></object></p>
<!--{elseif fileext($attach['filename']) == 'wma'}-->
<p><object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="400" height="64"><param name="autostart" value="0" /><param name="url" value="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" /><param name="PlayCount" value="100" /><embed src="attachment.php?aid=$attach[aid]&k=$k&t=$timestamp" autostart="0" type="audio/x-ms-wma" width="400" height="64"></embed></object></p>
<br><br><br>
<!--{/if}-->
<!--Alioith Music End-->

本文标签:

很赞哦! ()

相关源码

  • (自适应)光伏测试仪器电站运维设备网站源码免费下载本模板为光伏检测设备与电站运维服务企业设计,采用PbootCMS内核开发,具备完整的设备展示、技术文档管理及客户服务功能模块。通过自适应结构与SEO优化框架,有效提升企业在移动端和搜索引擎中的专业形象。查看源码
  • (自适应响应式)宠物经验资讯咨询博客pbootcms网站源码下载除宠物资讯领域外,通过内容替换可快速适配宠物用品商城、宠物医疗咨询平台、宠物训练教程网站、动物保护组织官网、水族爱好者社区等垂直领域。查看源码
  • (PC+WAP)pbootcms模板黑色门窗定制五金建材网站下载为门窗定制与五金建材企业设计的网站解决方案,采用PbootCMS开发,兼具专业展示与营销功能。黑色系设计突显工业质感,响应式布局确保在手机、平板等设备上的浏览体验。通过简单的内容替换,也可适用于建材贸易、家具定制等相关行业。查看源码
  • WordPress个人博客主题 - wp-Concise-v1.0免费下载wp-Concise-v1.0是一款专为个人博客设计的简约风格主题,采用全宽排版设计理念,注重内容呈现效果。该模板适用于个人随笔、技术分享、生活记录等博客场景,帮助用户打造专业的内容展示空间。查看源码
  • 响应式电脑维修办公用品维护pbootcms网站模板模板介绍(自适应手机版)响应式电脑修理公司pbootcms网站模板-蓝色HTML5电脑修理维修店网站源码下载PbootCMS内核开发的营销型网站模板,该模查看源码
  • (自适应响应式)HTML5幕墙装饰工程建筑装修公司pbootcms模板下载基于PbootCMS开发的响应式模板,为幕墙工程、建筑装饰企业设计,通过数字化展示提升企业专业形象与项目展示能力。结构化数据标记增强项目案例收录,智能URL路由优化,支持每个工程案例独立设置关键词与描述查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐