「javase声音」java跟javase
本篇文章给大家谈谈javase声音,以及java跟javase对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java播放声音
用java可以编写播放.au、.aiff、.Wav、.Midi、.rfm格式的音频;
例子:
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
/**
* pTitle: Applet播放声音文件/p
* pDescription: 使用AudioClip类加载声音文件,并当鼠标点击后开始播放/p
* pCopyright: Copyright (c) 2003/p
* pFilename: PlayAudio.java/p
* @version 1.0
*/
public class PlayAudio extends Applet
implements ActionListener{
AudioClip audio;
Button btExit,btOpen,btPlay,btLoop,btStop;
/**
*br方法说明:初始化Applet
*br输入参数:
*br返回类型:
*/
public void init() {
//加载声音文件
audio = getAudioClip(getDocumentBase(),"img/1.mid");
//构造按钮
setLayout(new FlowLayout()); //使用布局管理器
btPlay=new Button("Play"); //定义Play按钮
btPlay.addActionListener(this); //给Play按钮添加一个监听事件
btLoop=new Button("Loop"); //定义Play按钮
btLoop.addActionListener(this); //给Play按钮添加一个监听事件
btStop=new Button("Stop"); //定义Play按钮
btStop.addActionListener(this); //给Play按钮添加一个监听事件
//将按钮添加到Applet中
add(btPlay);
add(btLoop);
add(btStop);
}
public void actionPerformed(ActionEvent e) {
//如果点击的是Play按钮
if (e.getSource()==btPlay) {
play();
}
//如果点击的是loop按钮
if (e.getSource()==btLoop) {
loop();
}
//如果点击的是stop按钮
if (e.getSource()==btStop) {
stop();
}
}
/**
*br方法说明:播放声音
*br输入参数:
*br返回类型:
*/
public void play(){
if (audio!=null) stop();
audio.play();
}
/**
*br方法说明:循环播放声音
*br输入参数:
*br返回类型:
*/
public void loop(){
if (audio!=null)
audio.loop();
}
/**
*br方法说明:停止播放声音
*br输入参数:
*br返回类型:
*/
public void stop(){
if (audio!=null)
audio.stop();
}
}
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中可以使用AudioPlayer来播放音乐,实例如下:
public class MySound{
public MySound(){
//C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar这个jar包怎么加进工程,我放在那个工程中也没用
try {
InputStream in = new FileInputStream("hello.wav");//找到这个音乐文件
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);// 开始播放
//AudioPlayer.player.stop(as);
}catch(FileNotFoundException e){
}
catch(IOException e){
}
}
public static void main(String[] args) {
new MySound3();
}
}
悬赏20!!!JAVA—怎么弄一点声音?
这你有两个文件 需要注意 音乐的路径 同时Java不支持MP3 格式的音乐
但支持wav,mid,au,aif.rfm.格式
第一个 sound.java
代码如下
import java.applet.*;
public class sound extends Applet{
AudioClip ac;
public void init(){
ac=getAudioClip(getCodeBase(),"音乐名称.wav");
}
public void start(){
ac.loop();
}
public void stop(){
ac.stop();
}
}
第二个文件 sound.html
html
body
applet code="sound.class" height=500 width=500
/applet
/body
/html
javase声音的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java跟javase、javase声音的信息别忘了在本站进行查找喔。
发布于:2022-12-24,除非注明,否则均为
原创文章,转载请注明出处。