J2se中的声音---AudioPlayer
1 package cn.gp.tools; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream; import sun.audio.AudioPlayer;
import sun.audio.AudioStream; /**
* 背景音效工具类
* @author 小风微灵
*
*/
public class MusicUtil { /**
* 播放触发音效
* @param isPlay 是否播放
* @param pathIndex 播放序列
*/
public static void playMusic(boolean isPlay,int pathIndex) {
// 打 开 一 个 声 音 文 件 流 作 为 输 入
InputStream in;
try {
String musicPath=ImageUtil.getProgramRootPath()+"music/btn_music_"+pathIndex+".wav";
in = new FileInputStream (musicPath);
//System.out.println("音乐路径:"+musicPath);
AudioStream as = new AudioStream (in); // 用 输 入 流 创 建 一 个AudioStream 对 象
//System.out.println("成功转换成音乐流:");
if(isPlay){//【改为:isPlay后音效恢复】
AudioPlayer.player.start (as); //“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放
//System.err.println("音乐播放中....");
}else{
AudioPlayer.player.stop (as);
//System.err.println("音乐停止....");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 播放指定音乐
* @param isPlay 是否播放
* @param musicName 音乐名称
*/
public static void playMusic(boolean isPlay,String musicName) {
// 打 开 一 个 声 音 文 件 流 作 为 输 入
InputStream in = null;
AudioStream as = null;
try {
String musicPath=ImageUtil.getProgramRootPath()+"music/"+musicName;
in = new FileInputStream (musicPath);
//System.out.println("音乐路径:"+musicPath);
as = new AudioStream (in); // 用 输 入 流 创 建 一 个AudioStream 对 象
//System.out.println("成功转换成音乐流:");
if(isPlay){
AudioPlayer.player.start (as); //“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放
//System.err.println("音乐播放中....");
}else{
AudioPlayer.player.stop (as);
//System.err.println("音乐停止....");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally{
try {
as.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
} }
}
/**
* 默认播放的音效
* @param isPlay 是否播放
*/
public static void playMusic(boolean isPlay) {
// 打 开 一 个 声 音 文 件 流 作 为 输 入
InputStream in;
try {
String musicPath=ImageUtil.getProgramRootPath()+"music/btn_music_5.wav";
in = new FileInputStream (musicPath);
//System.out.println("音乐路径:"+musicPath);
AudioStream as = new AudioStream (in); // 用 输 入 流 创 建 一 个AudioStream 对 象
//System.out.println("成功转换成音乐流:");
if(isPlay){
AudioPlayer.player.start (as); //“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放
//System.err.println("音乐播放中....");
}else{
AudioPlayer.player.stop (as);
//System.err.println("音乐停止....");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
J2se中的声音---AudioPlayer的更多相关文章
- Java应用程序中的声音播放
声音可以创造意境,触发遐想,当与虚拟图像相结合时,更加可以让整个世界充满幻觉,声音是多媒体技术的基础. 播放声音是Java对多媒体的支持一个重要部分,它支持的声音文件类型主要有: AU - (扩展名为 ...
- 关于Unity中的声音管理模块(专题七)
声音的要素 1: 音频文件AudioClip2: 音源AudioSource;3: 耳朵AudioListener;//全局只能有一个4: 2D/3D音频;//2D只是简单地播放声音,3D可以根据距离 ...
- 简单代码在ABAP中实现声音的播放
这段代码的功能是在SAP里面实现声音的播放,可以用作程序提醒功能,和SAP里面’噹噹噹’那个声音的意思差不多.将来在项目中遇到客户想要SAP ABAP发出一点声音的时候就可以参考一下这个程序. REP ...
- 在VC资源文件中加入声音资源
本文介绍如何在VC资源文件中加入自己的声音资源,使自己的应用程序可以播放声音. 1.首先用文本编辑器(如记事本)打开资源文件(.rc文件) 在最后加入自己的声音资源,如下IDW WAVE " ...
- Cocos2d-X中的声音和音效
在玩游戏时都会有各种游戏音,如启动游戏时会有背景音,胜利或者失败会有一些音效.在Cocos2d-X中能够使用CocosDenshion实现各种声音 在使用CocosDenshion之前须要在程序中加入 ...
- 关于Unity中3D声音的使用
3D声音 3D立体声和2D声不同的地方是它是会随着距离衰减的,距离越近声音越大,距离越远声音越小. 1: 声音: 背景音乐和音效; 2: 声音文件支持的格式: ogg, mp3, wave, AIFF ...
- 关于解决用tutorial7教程中的代码打造一款自己的播放器中的声音噪音问题
////////////////////////////////////////////////////////////////////////////////////////////对于用FFMPE ...
- android中常见声音操作方式(Ringtone,SoundPool,MediaPlayer)小结
在Android开发中有时候需要用到播放声音操作,在android API 的media包中有三种方式可供我们选择,它们分别是Ringtone,SoundPool,MediaPlayer.因为在我目前 ...
- 使用Camtasia来消除视频中的声音
大多数情况下,我们在录制电脑屏幕的时候都会把音频输出也一起录制下来,但也会有时候要后期进行重新配音,需要把事先一同录制的音频消除掉,今天小编来给大家说一说如何消除这种的视频声音. 首先打开Camtas ...
随机推荐
- git 添加忽略文件
使用github for windows客户端添加.gitignore文件: 如下图所示,在github客户端可以看到未提交的更改列表 随便选中一个文件,右链,选择ignore file. 然后会 ...
- Linux学习笔记21——线程同步的两种方式
一 用信号量同步 1 信号量函数的名字都以sem_开头,线程中使用的基本信号量函数有4个 2 创建信号量 #include<semaphore.h> int sem_init(sem_t ...
- Unity Flow distort of screen
Shader "ScreenWater" {Properties { _MainTex ("Base (RGB)", 2D) = "white&quo ...
- java多线程编程(2)交替输出数字和字母
mark一下,不停的看看notify和wait的没有理解 class Printer { int index=0; //输出奇数 public synchronized void printA(int ...
- CentOS 7 更改网卡名到以前的eth0
最近安装了CentOS7,内核总算升级到3.10,支持Linux容器,network namespace······· 但是安装完之后,发现ifconfig没看到熟悉的eth0,却是enp0s3,虽然 ...
- 关键字 final
package com.zyw.reusableClass; import java.util.Random; /** * Created by zyw on 2016/3/26. * from th ...
- 《Numerical Methods》-chaper7-解线性方程组的直接方法和最小二乘问题
基于我们在线性代数中学习过的知识,我们知道解线性方程组本质上就是Gauss消元,也就是基于增广矩阵A的矩阵初等变换.关于数学层面的内容这里不做过多的介绍,这里的侧重点是从数值计算的角度来看这些常见的问 ...
- hdoj 1045 Fire Net
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- c\c++复习基础要点16----枚举类型
枚举类型: 语法格式: enum 枚举类型名 {变量值列表}; 例如: enum Weekday{sun, mon, tue, wed, thu, fri, set}; 声明了枚举类型后,就可以定义 ...
- Android中关于在onDrow或者onMeasure中创建对象提示Avoid object allocations during draw/layout operations (preallocate and reuse instead) 问题
在实际开发中Android中自带的控件有时无法满足我们的需求,这时就需要我们重写控件来实现我们想要的功能. 还有个关于UI体验的问题,就是在onDraw()函数中最好不要去创建对象,否则就提示下面的警 ...