JavaWeb项目音频资源播放解决方案
一、方式1:登陆系统后进行播放,即在浏览器端
需要在JSP页面编写相关代码
1 2 3 4 5 6 7 8 9 10 11 | < div id="midea" style="display: none;"> < object id='player' height='100' width='200' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'> < param name='AutoStart' value='0' /> < param name='Balance' value='0' /> < param name='enabled' value='-1' /> < param name='EnableContextMenu' value='-1' /> < param name='url' value='${pageContext.request.contextPath}/player/bestduanxin.wav' /> < param name='volume' value='100' /> < param name='uiMode' value='mini' /> </ object > </ div > |
在js脚本里调用
1 2 3 4 5 | document.getElementById( 'player' ).controls.play(); setTimeout(stopPlayer,6000); function stopPlayer(){ document.getElementById( 'player' ).controls.stop(); } |
二、方式2:不用登陆即可播放,即在服务器端
需在java后台编写相关代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import java.applet.Applet; import java.applet.AudioClip; import java.net.URL; import java.util.Timer; import java.util.TimerTask; import javax.servlet.http.HttpServletRequest; public class AudioPlayer { public static void player(HttpServletRequest request){ URL audioUrl= null ; try { //项目URL根路径 String path = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+request.getContextPath(); //音频资源地址 audioUrl = new URL(path+ "/player/bestduanxin.wav" ); //创建音频播放类 final AudioClip audioClass=Applet.newAudioClip(audioUrl); audioClass.loop(); //new一个线程执行停止播放 TimerTask task = new TimerTask() { @Override public void run() { audioClass.stop(); } }; //new一个定时器,指定播放若干秒后执行停止播放 Timer timer = new Timer(); timer.schedule(task, GetPropertiesValue.getTimes()*GetPropertiesValue.getDuration()); } catch (Exception e) { e.printStackTrace(); } } } |
附获取音频文件时长的方法
1 2 3 4 | File file = new File(url.substring( 0 , url.indexOf( "WEB-INF" ))+ "player/bestduanxin.wav" );<br>Clip clip = AudioSystem.getClip(); AudioInputStream ais = AudioSystem.getAudioInputStream(file); clip.open(ais);<br> //得到的时间为微秒(μs),除以1000得到毫秒(ms)数 System.out.println(clip.getMicrosecondLength()/ 1000 ); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!