使用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("有错误!")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)