利用Java Applet播放声音文件

利用Java Applet播放声音文件,第1张

使用Applet播放声音时需首先定义AudioClip对象 GetAudioClip方法能把声音赋予AudioClip对象 如果仅想把声音播放一遍 应调用AudioClip类的play方法 如果想循环把声音剪辑 应选用AudioClip类的loop方法

图像格式各种各样 如BMP GIF和JPEG等 声音文件也一样 WAV和AU是最常用的两种声音文件 目前Java仅支持AU文件 但Windows环境下常用的却是WAV文件 所以最好能有一个可把WAV文件转换为AU文件的工具

* 播放声音的AudioClip类

AudioClip类用来在Java Applet内播放声音 该类在java Applet包中有定义

下面演示了如何利用AudioClip类播放声音

装入一个名为Sample Au的声音文件并播放(SoundDemo java)

//源程序清单 import java awt *import java applet * public class SoundDemo extends Applet {  public void paint(Graphics g)  { AudioClip audioClip=getAudioClip(getCodeBase() Sample AU )//创建AudioClip对象并用//getAudioClip方法将其初始化 g drawstring( Sound Demo! )audioClip loop() //使用AudioClip类的loop方法循环播放  } }

需把如下的HTML语句放入SoundDemo HTML文件 为运行该Applet做准备

<HTML> <TITLE>SoundDemo Applet</TITLE> <APPLET CODE= SoundDemo class WIDTH= HEIGHT= > </APPLET> </HTML>

lishixinzhi/Article/program/Java/hx/201311/27027

在 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 swt实现播放音乐代码如下:

public void play(String Filename)

{

try{

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

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

// 从输入流中创建一个AudioStream对象

AudioStream as = new AudioStream(in)

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

//AudioPlayer.player.stop(as)//关闭音乐播放

//如果要实现循环播放,则用下面的三句取代上面的“AudioPlayer.player.start(as)”这句

/*AudioData data = as.getData()

ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data)

AudioPlayer.player.start(gg)// Play audio.

*/

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

/*AudioStream as = new AudioStream (url.openStream())

*/

} catch(FileNotFoundException e){

System.out.print("FileNotFoundException ")

} catch(IOException e){

System.out.print("有错误!")

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8039177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存