java中怎么加入声音

来源:互联网 发布:淘宝贝高瞻国际幼儿园 编辑:程序博客网 时间:2024/04/30 15:49

java中怎么加入声音 先说一下在 applet 中播放声音文件的一般步骤:

 

创建一个 AudioClip 对象

装入 .au 或者wav的声音文件(或者后面所说的支持的类型)到 AudioClip 对象

 

 

下面是相应的代码:

 import java.applet.*;

 

AudioClip ac = getAudioClip(getCodeBase(), soundFile);

ac.play(); //一次播放

ac.stop(); //停止播放

ac.loop(); //循环播放声音

 看起来,在 Java 应用程序中用相同的代码来播放声音文件似乎也是可行的。但很不幸,如果你真这样做,编译器就会报错。为什么呢?因为 AudioClip 对象及其方法 getAudioClip() 属于java.applet 包 -- 而不属于应用程序包的。可喜的是我们还可以自己做些改变来实现声音播放功能。

 

解决这个问题的窍门是利用由 Sun 及 其JDK 提供的某些 undocumented 的特征。先看看 Sun JDK 中的文件 classes.zip (使用任何解压工具即可),发现其中不仅包含标准的 Java 包如 java.applet 而且还存在包 sun.audio. (在 sun/audio 的目录下.)(你不需要对其操作)

 

包 sun.audio 中包含了用于播放声音文件所需的所有东西!下面是示例代码:

 

import sun.audio.*; //引入包,一定要的

import java.io.*;

 

将上面两条语句放你程序前面(相信你学java这点还是知道吧!)

 

// 用输入流打开一音频文件

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(“game.mav”)

 

// Create an AudioStream object from the input stream.

AudioStream as = new AudioStream(in);

 

 

 

AudioPlayer.player.start(as);//用静态成员player.start播放音乐

 

  AudioPlayer.player.stop(as);//同样这是关闭音乐///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果需要持续播放声音文件,则要稍稍复杂一点:

 

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(“game.mav”) //获得音频文件

 

AudioStream as = new AudioStream(in);

AudioData data = as.getData();

 

// Create ContinuousAudioDataStream.

ContinuousAudioDataStream gg = new ContinuousAudioDataStream (data);

 

 

AudioPlayer.player.start (gg);  // 播放

 

  AudioPlayer.player.stop (gg); // 停止

 

如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音流:

 AudioStream as = new AudioStream (url.openStream());

////////////////======================================================现在我给一个应用程序的例子给大家:import sun.audio.*; //import the sun.audio packageimport java.io.*;public class MYsound{public MYsound(){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 arg[]){new MYsound();}}、、、、、、、、、、、、、、、、、、、、、、、注意::声音文件一定与你的源程序放在一个目录,其他目录的自己处理声音文件支持类型,au,wav,RMF,MIDI类型0文件,MIDI类型1文件,AIFF,(其他的自己去找)、、、、、、、、、、、、、、、、、、、、、、、拿过去用就ok了,还有就是一定要做异常处理声明:/*try{//播放声音只放一次 InputStream in = new FileInputStream("hello.wav"); AudioStream as = new AudioStream(in); AudioPlayer.player.start(as); }catch(FileNotFoundException e){ System.out.print("FileNotFoundException ");}catch(IOException e){ System.out.print("有错误!");}*/try{//循环播放声音 InputStream in = new FileInputStream("hello.wav"); AudioStream as = new AudioStream(in); AudioData data = as.getData(); ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data); AudioPlayer.player.start(gg);// Play audio. }catch(FileNotFoundException e){ System.out.print("FileNotFoundException "); }catch(IOException e){ System.out.print("有错误!");} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 谢谢大家! 先说一下在 applet 中播放声音文件的一般步骤:

 

创建一个 AudioClip 对象

装入 .au 或者wav的声音文件(或者后面所说的支持的类型)到 AudioClip 对象

 

 

下面是相应的代码:

 import java.applet.*;

 

AudioClip ac = getAudioClip(getCodeBase(), soundFile);

ac.play(); //一次播放

ac.stop(); //停止播放

ac.loop(); //循环播放声音

 看起来,在 Java 应用程序中用相同的代码来播放声音文件似乎也是可行的。但很不幸,如果你真这样做,编译器就会报错。为什么呢?因为 AudioClip 对象及其方法 getAudioClip() 属于java.applet 包 -- 而不属于应用程序包的。可喜的是我们还可以自己做些改变来实现声音播放功能。

 

解决这个问题的窍门是利用由 Sun 及 其JDK 提供的某些 undocumented 的特征。先看看 Sun JDK 中的文件 classes.zip (使用任何解压工具即可),发现其中不仅包含标准的 Java 包如 java.applet 而且还存在包 sun.audio. (在 sun/audio 的目录下.)(你不需要对其操作)

 

包 sun.audio 中包含了用于播放声音文件所需的所有东西!下面是示例代码:

 

import sun.audio.*; //引入包,一定要的

import java.io.*;

 

将上面两条语句放你程序前面(相信你学java这点还是知道吧!)

 

// 用输入流打开一音频文件

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(“game.mav”)

 

// Create an AudioStream object from the input stream.

AudioStream as = new AudioStream(in);

 

 

 

AudioPlayer.player.start(as);//用静态成员player.start播放音乐

 

  AudioPlayer.player.stop(as);//同样这是关闭音乐///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果需要持续播放声音文件,则要稍稍复杂一点:

 

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(“game.mav”) //获得音频文件

 

AudioStream as = new AudioStream(in);

AudioData data = as.getData();

 

// Create ContinuousAudioDataStream.

ContinuousAudioDataStream gg = new ContinuousAudioDataStream (data);

 

 

AudioPlayer.player.start (gg);  // 播放

 

  AudioPlayer.player.stop (gg); // 停止

 

如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音流:

 AudioStream as = new AudioStream (url.openStream());

////////////////======================================================现在我给一个应用程序的例子给大家:import sun.audio.*; //import the sun.audio packageimport java.io.*;public class MYsound{public MYsound(){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 arg[]){new MYsound();}}、、、、、、、、、、、、、、、、、、、、、、、注意::声音文件一定与你的源程序放在一个目录,其他目录的自己处理声音文件支持类型,au,wav,RMF,MIDI类型0文件,MIDI类型1文件,AIFF,(其他的自己去找)、、、、、、、、、、、、、、、、、、、、、、、拿过去用就ok了,还有就是一定要做异常处理声明:/*try{//播放声音只放一次 InputStream in = new FileInputStream("hello.wav"); AudioStream as = new AudioStream(in); AudioPlayer.player.start(as); }catch(FileNotFoundException e){ System.out.print("FileNotFoundException ");}catch(IOException e){ System.out.print("有错误!");}*/try{//循环播放声音 InputStream in = new FileInputStream("hello.wav"); AudioStream as = new AudioStream(in); AudioData data = as.getData(); ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data); AudioPlayer.player.start(gg);// Play audio. }catch(FileNotFoundException e){ System.out.print("FileNotFoundException "); }catch(IOException e){ System.out.print("有错误!");} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 谢谢大家! 先说一下在 applet 中播放声音文件的一般步骤:

 

创建一个 AudioClip 对象

装入 .au 或者wav的声音文件(或者后面所说的支持的类型)到 AudioClip 对象

 

 

下面是相应的代码:

 import java.applet.*;

 

AudioClip ac = getAudioClip(getCodeBase(), soundFile);

ac.play(); //一次播放

ac.stop(); //停止播放

ac.loop(); //循环播放声音

 看起来,在 Java 应用程序中用相同的代码来播放声音文件似乎也是可行的。但很不幸,如果你真这样做,编译器就会报错。为什么呢?因为 AudioClip 对象及其方法 getAudioClip() 属于java.applet 包 -- 而不属于应用程序包的。可喜的是我们还可以自己做些改变来实现声音播放功能。

 

解决这个问题的窍门是利用由 Sun 及 其JDK 提供的某些 undocumented 的特征。先看看 Sun JDK 中的文件 classes.zip (使用任何解压工具即可),发现其中不仅包含标准的 Java 包如 java.applet 而且还存在包 sun.audio. (在 sun/audio 的目录下.)(你不需要对其操作)

 

包 sun.audio 中包含了用于播放声音文件所需的所有东西!下面是示例代码:

 

import sun.audio.*; //引入包,一定要的

import java.io.*;

 

将上面两条语句放你程序前面(相信你学java这点还是知道吧!)

 

// 用输入流打开一音频文件

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(“game.mav”)

 

// Create an AudioStream object from the input stream.

AudioStream as = new AudioStream(in);

 

 

 

AudioPlayer.player.start(as);//用静态成员player.start播放音乐

 

  AudioPlayer.player.stop(as);//同样这是关闭音乐///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果需要持续播放声音文件,则要稍稍复杂一点:

 

InputStream in = new FileInputStream(Filename);//FIlename 是你加载的声音文件如(“game.mav”) //获得音频文件

 

AudioStream as = new AudioStream(in);

AudioData data = as.getData();

 

// Create ContinuousAudioDataStream.

ContinuousAudioDataStream gg = new ContinuousAudioDataStream (data);

 

 

AudioPlayer.player.start (gg);  // 播放

 

  AudioPlayer.player.stop (gg); // 停止

 

如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音流:

 AudioStream as = new AudioStream (url.openStream());

////////////////======================================================现在我给一个应用程序的例子给大家:import sun.audio.*; //import the sun.audio packageimport java.io.*;public class MYsound{public MYsound(){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 arg[]){new MYsound();}}、、、、、、、、、、、、、、、、、、、、、、、注意::声音文件一定与你的源程序放在一个目录,其他目录的自己处理声音文件支持类型,au,wav,RMF,MIDI类型0文件,MIDI类型1文件,AIFF,(其他的自己去找)、、、、、、、、、、、、、、、、、、、、、、、拿过去用就ok了,还有就是一定要做异常处理声明:/*try{//播放声音只放一次 InputStream in = new FileInputStream("hello.wav"); AudioStream as = new AudioStream(in); AudioPlayer.player.start(as); }catch(FileNotFoundException e){ System.out.print("FileNotFoundException ");}catch(IOException e){ System.out.print("有错误!");}*/try{//循环播放声音 InputStream in = new FileInputStream("hello.wav"); AudioStream as = new AudioStream(in); AudioData data = as.getData(); ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data); AudioPlayer.player.start(gg);// Play audio. }catch(FileNotFoundException e){ System.out.print("FileNotFoundException "); }catch(IOException e){ System.out.print("有错误!");} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 谢谢大家!

原创粉丝点击