java播放背景音乐的几种方式
大四第一学期快结束了,准备找实习单位的时候,用了一周的时间去投简历去面试,结果没有一家有反馈要不就是面试没通过,拿着iOS的项目(在老师工作室的外包项目)去面试java开发,结果全部碰壁。
第一种,直接在html上写
<div id="playMusic" align="center" style="position: absolute; right: 0px; top: 0px;">//div的位置属性等
<audio src="${ctx}/BackgroundMusic/4.wav" controls="controls" autoplay="autoplay" loop=true>//src要写项目的音频文件不是网络上的
Your browser does not support the audio tag. //这是
浏览器不支持的情况下所显示的文字
</audio>
</div>

具体属性看http://www.w3school.com.cn/tags/tag_audio.asp
第二种在js上写
function playMusic(){
var audio = document.createElement('audio');
audio.src = '${ctx}/BackgroundMusic/9.wav'//这里放音乐的地址
audio.autoplay = 'autoplay';
document.body.appendChild(audio);
}
第三种是javase的项目,要先创建一个类GameMusic.java,代码如下
package cn.circle.system.util;
import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.SourceDataLine;
public class GameMusic {
public static void Play(String fileurl) {
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(fileurl));
AudioFormat aif = ais.getFormat();System.out.println(aif);
final SourceDataLine sdl;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, aif);
sdl = (SourceDataLine) AudioSystem.getLine(info);
sdl.open(aif);
sdl.start();
FloatControl fc=(FloatControl)sdl.getControl(FloatControl.Type.MASTER_GAIN);
//value可以用来设置音量,从0-2.0
double value=2;
float dB = (float)
(Math.log(value==0.0?0.0001:value)/Math.log(10.0)*20.0);
fc.setValue(dB);
int nByte = 0;
int writeByte = 0;
final int SIZE=1024*64;
byte[] buffer = new byte[SIZE];
while (nByte != -1) {
nByte = ais.read(buffer, 0, SIZE);
sdl.write(buffer, 0, nByte);
}
sdl.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是以一个工具类的出现,要在别的类调用,参数为音频文件的路径
java播放背景音乐的几种方式的更多相关文章
- Java中创建对象的几种方式
Java中创建对象的五种方式: 作为java开发者,我们每天创建很多对象,但是我们通常使用依赖注入的方式管理系统,比如:Spring去创建对象,然而这里有很多创建对象的方法:使用New关键字.使用Cl ...
- java产生随机数的几种方式
java产生随机数的几种方式 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他 ...
- Java读写文件的几种方式
自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...
- JAVA解析XML的四种方式
java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...
- Java添加事件的四种方式
Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动) /** * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器 * * @author ...
- java解析xml的几种方式
java解析xml的几种方式 DOM DOM的全称是Document ObjectModel,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称D ...
- 对Java代码加密的两种方式,防止反编译
使用Virbox Protector对Java项目加密有两种方式,一种是对War包加密,一种是对Jar包加密.Virbox Protector支持这两种文件格式加密,可以加密用于解析class文件的j ...
- Java中创建对象的五种方式
我们总是讨论没有对象就去new一个对象,创建对象的方式在我这里变成了根深蒂固的new方式创建,但是其实创建对象的方式还是有很多种的,不单单有new方式创建对象,还有使用反射机制创建对象,使用clone ...
- java 实现websocket的三种方式
Java中实现websocket常见有以下三种方式: 使用tomcat的websocket实现,需要tomcat 7.x,JEE7的支持. 使用spring的websocket,spring与webs ...
随机推荐
- 怎么把jdk和jRE的Javadoc文档整合到MyEclipse
有时在写代码时,需要查看javadoc文档,便于编写程序.故如何把Javadoc文档整合到MyEclipse,以便于查看呢? 解决办法: 1.在MyEclipse中菜单栏的“Windows”---&g ...
- 使用strace 工具跟踪系统调用和信号
使用strace来执行程序,它会记录程序执行过程中调用,接收到的信号,通过查看记录结果,就可以知道程序打开哪些文件,进行哪些读写,映射哪些内存,向系统申请多少内存等信息 strace 移植 下载str ...
- Android新手踩到的一些雷,记录一下~
这两天在搞一个android的app ,由于是新手,注定要踩很多坑. 这里是一些遇到的一些问题,网上各种找答案,感谢各位博主.这里记录一下,留待以后再看. 1. android layout_weig ...
- Socket支持多用户并发访问的解决办法
//创建线程池,池中具有(cpu个数*50)条线程 ExecutorService executorService = Executors.newFixedThreadPool(Runtime.get ...
- EXCEL里面的数字显示为文本 不用科学计数法显示
1. 在输入这一串数字前加撇号“'”(英文状态下的单引号)即可.2. 先将这一列设置为“文本”格式,然后直接输入这一串数字即可. 已经输入好了数字,那估计你这些数字的后三位都已经全变成“0”了,用 ...
- SparkMLlib之 logistic regression源码分析
最近在研究机器学习,使用的工具是spark,本文是针对spar最新的源码Spark1.6.0的MLlib中的logistic regression, linear regression进行源码分析,其 ...
- 悲惨记忆。。QImage之 pixel() && setPixel()参数不要给反了。。。
QImage repairImg(width, height, QImage::Format_Mono); ; row < height; row++) { // uchar* ucRow = ...
- 探索javascript----浅析js模块化
引言: 鸭子类型: 面向对象的编程思想里,有一个有趣的概念,叫鸭子类型:“一只鸟走起来像鸭子.游起泳来像鸭子.叫起来也像鸭子,那它就可以被当做鸭子.也就是说,它不关注对象的类型,而是关注对象具有的行为 ...
- 史上最简单的socket
1. client import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import ja ...
- C#导入Excel遇到数字字母混合列数据丢失解决
错误重现: ----------------------------------------------------------------------- 在导入Excel读取数据时,其中的一个字段保 ...