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

所属分类: 软件编程 / java 阅读数: 38
收藏 0 赞 0 分享

一、方式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);

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

更多精彩内容其他人还在看

Java Set简介_动力节点Java学院整理

Set最大的特性就是不允许在其中存放的元素是重复的。接下来通过本文给大家分享java set常用方法和原理分析,需要的的朋友参考下吧
收藏 0 赞 0 分享

Java Timezone类常见问题_动力节点Java学院整理

这篇文章主要介绍了Java Timezone类常见问题的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

javaWeb项目部署到阿里云服务器步骤详解

本篇文章主要介绍了javaWeb项目部署到阿里云服务器步骤详解,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解使用zxing库生成QR-Code二维码

这篇文章主要介绍了详解使用zxing库生成QR-Code二维码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现对服务器的自动巡检邮件通知

这篇文章主要为大家详细介绍了java实现对服务器的自动巡检邮件通知,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java随机验证码生成实现实例代码

这篇文章主要介绍了java随机验证码生成实现实例代码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

java读取txt文件代码片段

这篇文章主要为大家详细介绍了java读取txt文件的代码片段,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java连接mysql数据库的方法

这篇文章主要为大家详细介绍了java连接mysql数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java 算法之快速排序实现代码

这篇文章主要介绍了java 算法之快速排序实现代码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

这篇文章主要介绍了详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多