java音频教程
❶ java 实现音频播放
这个程序只要写对了音乐文件的URL地址,例如:new URL("file:/C:/tmp/1/Windows Ding.wav");
就可以播放音乐,除了可以播放.wav格式的音乐,还可以播放.au格式的音乐。
另外,如果你不希望音乐循环播放,你可以去掉audio1.loop();这一语句。
import java.applet.AudioClip;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFrame;
public class D extends JFrame{
D(){
setSize(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
URL codebase=null;
try {
codebase = new URL("file:/C:/tmp/1/Windows Ding.wav");
} catch (MalformedURLException e) {
e.printStackTrace();
}
AudioClip audio1=Applet.newAudioClip(codebase);
audio1.loop();
}
public static void main(String[] args) {
new D();
}
}
❷ java编程:怎么播放一个音频
1.在Applet中播放声音
播放声音是java对多媒体的支持一个重要部分.
现今流行的声音格式有wav,mid,au为扩展名的声音文件。
而java现主要支持以au为名的声音。
在Applet中专门提供了类AudioClip来对声音的支持。
由于Applet的多媒体功能书上都有很清晰的介绍也很简单。
我们就以一个例子来结束这部分的说明。
import java.applet.*;
public class sounda extends Applet
{
public static void main (String[] args)
{
AudioClip ac = getAudioClip(getCodeBase(), "sloop.au");
ac.play();
// ac.loop();
// ac.stop();
}
}
2.上面例子只是很简单的说明,AudioClip是java中播放类。
java中提供了两个很有用的方法getCodeBase(),
getDocumentBase()他们分别返回Applet本身和包含此Applet主页的URL地址.
上面的sloop.au即机器上的声音文件。
直接使用了AudioClip的play方法来播放声音。
二 java应用程序中的声音播放
由于在应用程序并不支持AudioClip类。
所以播放声音文件成了一大难题。
sun公司为应用程序中的声音支持另提供了一个java新包。
sun.audio在这个包下面提供了大部分所需要的声音处理类。
注:sun包下面还有很多很有意思的技术支持,
如java2D,Tools等,
下面声音播放测试
import sun.audio.*;
2 imimport sun.audio.*;
import java.io.*;
public class Sound
{
public static voie main(String args[])
{
try {
FileInputStream fileau=new FileInputStream("sloop.au");
AudioStream as=new AudioStream(fileau);
AudioPlayer.player.start(as);
}
catch (Exception e) {}
}
}
注:上面两例都没有提供相应的stop方法,
三 javaX中Sound包的应用
当在进行上面的测试过程中,
发现javaX目录下也提供了一个sound包对java声音的强大支持,
并且在sun网站的jjse上可下载到相关的大量例子程序.
有志于声音处理方向的朋友可下载试试,
现在关于如何 在Java 小程序(Applet)中播放音乐以供人边浏览页面边欣赏的介绍已经很多了,
但对如何在应用程序(Application)中放音乐的介绍还很少,
下面就逐步地讲解一下如何实现。
Jun 当 前 的Java Development Kit 版本1.1.3 并不正式支持在Application 中放音乐文件,
❸ java怎么用鼠标单击事件加载音频
Java对声音片段的播放, 一般可以使用两种方案
1: java.applet.AudioClip 该类可以实现对声音片段的播放
2:javafx.scene.media.AudioClip 类也可以实现对声音片段的播放
两种方法的参考代码如下
**注意声音文件和代码在了同一个包内,如果包不同, 那么注意文件的肢仿路径
import局稿java.awt.*;
importjava.awt.event.*;
importjava.net.URL;
importjavax.swing.*;
{
privateURLurl;
publicSoundDemo(){
JPaneljp历腊纤=newJPanel();
JButtonjb=newJButton("按钮");
jp.add(jb);
add(jp);
setSize(300,200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//得到文件的url
try{
url=this.getClass().getResource("Note1.wav").toURI().toURL();
}catch(Exceptionex){
ex.printStackTrace();
}
jb.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//因为AudioClip类同名,为了区别,所以写的是完整的全限定名
//方法一:JavaFX的方式
javafx.scene.media.AudioClipau1=newjavafx.scene.media.AudioClip(url.toExternalForm());
au1.play();
//方法二:applet的方式
java.applet.AudioClipau2=java.applet.Applet.newAudioClip(url);
au2.play();
}
});
}
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
newSoundDemo().setVisible(true);
}
});
}
}
❹ 如何在java应用程序中播放音频文件
java里可以使用AudioClip 来播放音频文件
API参考内容如下
AudioClip 接口是用于播放音频剪辑的简单抽象。多个 AudioClip 项能够同时播放,得到的声音混合在一起可产生合成声音。
从以下版本开始:
JDK1.0
方法摘要
void loop()
以循环方式开始播放此音频剪辑。
void play()
开始播放此音频剪辑。
void stop()
停止播放此音频剪辑。
当然了, 如果播放比较复杂的音频视频, 那么可以使用java媒体框架 JMF
❺ java设置声道音量
在Java中设置声道音量可以使用javax.sound.sampled.Line接口提供的FloatControl类。该类提腊码斗供了设置音频组件控制参数的方法,其中包括设置输出音量轮磨方法。
首先创建 AudioInputStream 对象并使用 Java 音频系统打开一个 WAV 文件,然后使用 Clip 类来播放音频。接着,我们使用 clip.getControl() 方法获取 FloatControl 对象,并使模瞎用 setValue() 方法来设置音量和平衡值。注意,MASTER_GAIN 控制器用于设置总音量,其取值范围为 -80.0f 到 6.0206f 分贝,PAN 控制器用于设置左右声道平衡值,其取值范围为 -1.0f 到 1.0f。
最后,我们启动音频播放器线程,并正在播放音频的同时等待 10 秒钟,然后停止播放器并关闭音频文件。
需要注意的是,不是所有音频格式都支持设置音量和平衡值,具体实现可能会因为您使用的音频格式而略有不同。
❻ 怎样在java中播放音乐
使用play()方法进行播放世陪,loop()方法循环播放,stop()方法停止播放。
实际例子:
File file1 = new File("src\\music\\11.wav");
AudioClip sound1;
sound1 = Applet.newAudioClip(file1.toURL());
sound1.play();
这样就实现了播放音乐的功能,注意J2SE默认只支持氏袜 wav格式的音搜核蠢频。
❼ 如何在java应用程序中播放音频文件
在 applet 中播放声音文件非常简单,一般需要以下步骤:创建一个 AudioClip 对象
装入 .au 声音文件到 AudioClip 对象
一次播放或者不停循环播放声游培扒音
停止播放
下面是相应的代码:import java.applet.*;AudioClip ac = getAudioClip(getCodeBase(), soundFile);
ac.play(); //play once
ac.stop(); //stop playing
解决这个问题的窍门是利用由 Sun 及 其JDK 提供的某些 undocumented 的特征。先看看 Sun JDK 中的文件 classes.zip (使用任何解压工具即可),发现其中不仅包含标准的 Java 包如 java.applet 而且还存在包 sun.audio. (在 sun/audio 的目录下.)
包 sun.audio 中包含了用于播放声音文件所需的所有东西神昌!下面是示例代码:import sun.audio.*; //import the sun.audio package
import java.io.*;//** add this into your application code as appropriate// Open an input stream to the audio file.
InputStream in = new FileInputStream(Filename);// Create an AudioStream object from the input stream.
AudioStream as = new AudioStream(in);// Use the static class member "player" from class AudioPlayer to play
// clip.
AudioPlayer.player.start(as);// Similarly, to stop the audio.
AudioPlayer.player.stop(as);如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音中团流:AudioStream as = new AudioStream (url.openStream());如果需要持续播放声音文件,则要稍稍复杂一点:// Create audio stream as discussed previously.
// Create AudioData source.
AudioData data = as.getData();// Create ContinuousAudioDataStream.
ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);// Play audio.
❽ Java中怎么加入声音
java中可以使用AudioPlayer来播放音乐,实例如下:
publicclassMySound{
publicMySound(){
//C:ProgramFilesJavajdk1.6.0jrelib t.jar这个jar包怎么加进工程,我放皮薯在那个工程中燃枝者也没用
try {
InputStreamin=newFileInputStream("hello.wav");//找到这个音乐文件搭慧
AudioStreamas=newAudioStream(in);
AudioPlayer.player.start(as);//开始播放
//AudioPlayer.player.stop(as);
}catch(FileNotFoundExceptione){
}
catch(IOExceptione){
}
}
publicstaticvoidmain(String[]args) {
newMySound3();
}
}
❾ java如何播放声音
对声音媒体的直接支持可以说是Java的一大特色,尤其是在动画中配上声音效果,就可以使人在视觉上和听觉上均得到美的享受,那才叫过瘾。Java中播放声音文件与显示图像文件一样方便,同样只需要先迟手将声音文件装载进来,然后播放就行了。
Java目前支持的声音文件只有一种格式,那就是SUN公司的AU格式(.AU文件),也称为u-law格式。由于AU格式的声音仅有8KHz的采样频率且不支持立体声效果,所以音质不算太好。唯一的好处就是AU声音文件的尺寸比其它格式小,有利于网上传输。一般,我们较熟悉的大都是WAV格式的声音文件,因此必须先将它们转换为AU格式(可以选用Goldwave软件来进行这种格式转换)。
声音文件准备好以后,就可以考虑将它装载进来并播放。在Applet类中提供的play( )方法可以将声音文件的装载与播放一并完成,其调用格式如下:
void play(URL url)
void play(URL url, String name)
可见,play( )方法的调用格式与getImage( )方法是完全一样的,也采用URL来定位声音文件。例如,某声音文件audio.au与applet文件存放在同一目录下,可以这样写:
play(getCodeBase( ),"audio.au");
一旦play( )方法装载了该声音文件,就立即播放。如果找不到指定URL下的声音文件,play( )方法不返回出错信息,只是听不到想听的声音而已。
由于play( )方法只能将声音播放一遍,返亏若想循环播放某声音作为背景音乐,就需要用到功能更强大的AudioClip类,它能更有效地管理声音的播放操作。因为它被定义在java.applet程序包中,所以使用该类的话,不要忘了在程序头部加上:
import java.applet.AudioClip;
为了得到AudioClip对象,我们可以调用Applet类中的getAudioClip( )方法。它能装载指定URL的声音文件,并返回一个AudioClip对象,其调用格式如下:
AudioClip getAudioClip(URL url)
AudioClip getAudioClip(URL url, String name)
得到AudioClip对象以后,就可以调用AudioClip类中所提供的各种方法来操作其中的声音数据,这些方法如表4-4所示。
如果getAudioClip( )方法没有找到所指定的声音文件,就会返回null值。所以,在调用表4-4中所列的方法前,应该先检查一下得到的AudioClip对象不是null,因为在null对象上调用上述方法将导致出错。
如果需要的话,我们还可以在applet中同时装载几个声音文件来一起播放,到时候,这些声音将混合在一起,就象二重奏一样。另外还有一点要说明的是,如果我们使用AudioClip对象的loop( )方法来重复播放背景音乐时,千万不要忘记在适当的时候调用AudioClip对象的stop( )方法来结束放音,否则的话,即使用户离开这一Web页面,该声音也不会停止,这无疑将会惹恼用户。因此,一般我们都在applet的stop( )方法中添上停止播放的代码。
例如,下面这段程序将播放两段声音,一段是连续播放的背景音乐,另一段是讲话录音。
import java.applet.AudioClip;
public class Audios extends java.applet.Applet{
AudioClip bgmusic,speak;
码世嫌 public void init(){
bgmusic=getAudioClip(getDocumentBase(),"space.au");
speak=getAudioClip(getDocumentBase(),"intro.au");
}
public void start(){
if(bgmusic!=null)
bgmusic.loop();
if(speak!=null)
speak.play();
}
public void stop(){
if(bgmusic!=null)
bgmusic.stop(); //关闭背景音乐,切记。
}
}
package com.hongyuan.test;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import
javax.sound.sampled.AudioInputStream;
import
javax.sound.sampled.AudioSystem;
import
javax.sound.sampled.DataLine;
import
javax.sound.sampled.LineUnavailableException;
import
javax.sound.sampled.SourceDataLine;
import
javax.sound.sampled.UnsupportedAudioFileException;
public class MusicTest {
public static final String MUSIC_FILE = "相逢一笑.wav";
public static void main(String[] args) throws
LineUnavailableException,
UnsupportedAudioFileException, IOException {
// 获取音频输入流
AudioInputStream audioInputStream =
AudioSystem
.getAudioInputStream(new File(MUSIC_FILE));
//
获取音频编码对象
AudioFormat audioFormat = audioInputStream.getFormat();
// 设置数据输入
DataLine.Info dataLineInfo = new
DataLine.Info(SourceDataLine.class,
audioFormat,
AudioSystem.NOT_SPECIFIED);
SourceDataLine sourceDataLine =
(SourceDataLine)
AudioSystem
.getLine(dataLineInfo);
sourceDataLine.open(audioFormat);
sourceDataLine.start();
/*
* 从输入流中读取数据发送到混音器
*/
int count;
byte tempBuffer[]
= new byte[1024];
while ((count = audioInputStream.read(tempBuffer, 0,
tempBuffer.length)) != -1) {
if (count > 0)
{
sourceDataLine.write(tempBuffer, 0, count);
}
}
//
清空数据缓冲,并关闭输入
sourceDataLine.drain();
sourceDataLine.close();
}
}
❿ JAVA程序中如何插入音频文件
在JAVA.applet中有AudioClip类支持播放,但好像只支持播放au和 wav格式的
代码:
AudioClip ac=getAudioClip (getCodeBase(), File);
// 创 建Audioclip 对 象 并 装 入.au 文 件
ac.play(); // 播 放 一 次
ac.stop(); // 停 止 播 放
ac.loop(); // 循 环 播 放