zoukankan      html  css  js  c++  java
  • JavaWeb项目音频资源播放解决方案

    一、方式1:登陆系统后进行播放,即在浏览器端

    需要在JSP页面编写相关代码

    <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脚本里调用

    document.getElementById('player').controls.play();
    setTimeout(stopPlayer,6000);
    function stopPlayer(){
    	document.getElementById('player').controls.stop();
    }
    

      

    二、方式2:不用登陆即可播放,即在服务器端

    需在java后台编写相关代码

    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();
    		}
    	}
    }
    

      

    附获取音频文件时长的方法

    File file = new File(url.substring(0, url.indexOf("WEB-INF"))+"player/bestduanxin.wav");
    Clip clip = AudioSystem.getClip(); AudioInputStream ais = AudioSystem.getAudioInputStream(file); clip.open(ais);
    //得到的时间为微秒(μs),除以1000得到毫秒(ms)数 System.out.println(clip.getMicrosecondLength()/1000);

      

  • 相关阅读:
    sql FLOAT字段使用like查询
    关于sql--时间范围查询重叠
    关于java时间类型比较
    前端-搜索无结果时,怎么把“暂无数据“显示出来?
    v-for动态赋值给不同的下拉框input
    Java的优先队列PriorityQueue详解
    软件体系架构阅读笔记八
    字符数组和字符串之间的转换
    Java快速输入输出
    软件体系架构阅读笔记七
  • 原文地址:https://www.cnblogs.com/zhncnblogs/p/8393412.html
Copyright © 2011-2022 走看看