首页 > 编程 > Java > 正文

JavaWeb项目音频资源播放实现方法详解

2019-11-26 08:29:53
字体:
来源:转载
供稿:网友

一、方式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");<br>Clip clip = AudioSystem.getClip();AudioInputStream ais = AudioSystem.getAudioInputStream(file);clip.open(ais);<br>//得到的时间为微秒(μs),除以1000得到毫秒(ms)数System.out.println(clip.getMicrosecondLength()/1000);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表