`
- 浏览:
231569 次
- 性别:
- 来自:
杭州
-
/* From http://java.sun.com/docs/books/tutorial/index.html */
/*
<html>
<body>
<applet code=SoundExample.class width=450 height=50>
</applet>
</body>
</html>
*/
/*
* 1.1 version.
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
public class SoundExample extends Applet implements ActionListener {
SoundList soundList;
String onceFile = "bark.au";
String loopFile = "train.au";
AudioClip onceClip;
AudioClip loopClip;
Button playOnce;
Button startLoop;
Button stopLoop;
Button reload;
boolean looping = false;
public void init() {
playOnce = new Button("Bark!");
playOnce.addActionListener(this);
add(playOnce);
startLoop = new Button("Start sound loop");
stopLoop = new Button("Stop sound loop");
stopLoop.setEnabled(false);
startLoop.addActionListener(this);
add(startLoop);
stopLoop.addActionListener(this);
add(stopLoop);
reload = new Button("Reload sounds");
reload.addActionListener(this);
add(reload);
startLoadingSounds();
}
void startLoadingSounds() {
//Start asynchronous sound loading.
soundList = new SoundList(this, getCodeBase());
soundList.startLoading(loopFile);
soundList.startLoading(onceFile);
}
public void stop() {
onceClip.stop(); //Cut short the one-time sound.
if (looping) {
loopClip.stop(); //Stop the sound loop.
}
}
public void start() {
if (looping) {
loopClip.loop(); //Restart the sound loop.
}
}
public void actionPerformed(ActionEvent event) {
//PLAY BUTTON
Object source = event.getSource();
if (source == playOnce) {
if (onceClip == null) {
//Try to get the AudioClip.
onceClip = soundList.getClip(onceFile);
}
if (onceClip != null) { //If the sound is loaded:
onceClip.play(); //Play it once.
showStatus("Playing sound " + onceFile + ".");
} else {
showStatus("Sound " + onceFile + " not loaded yet.");
}
return;
}
//START LOOP BUTTON
if (source == startLoop) {
if (loopClip == null) {
//Try to get the AudioClip.
loopClip = soundList.getClip(loopFile);
}
if (loopClip != null) { //If the sound is loaded:
looping = true;
loopClip.loop(); //Start the sound loop.
stopLoop.setEnabled(true); //Enable stop button.
startLoop.setEnabled(false); //Disable start button.
showStatus("Playing sound " + loopFile + " continuously.");
} else {
showStatus("Sound " + loopFile + " not loaded yet.");
}
return;
}
//STOP LOOP BUTTON
if (source == stopLoop) {
if (looping) {
looping = false;
loopClip.stop(); //Stop the sound loop.
startLoop.setEnabled(true); //Enable start button.
stopLoop.setEnabled(false); //Disable stop button.
}
showStatus("Stopped playing sound " + loopFile + ".");
return;
}
//RELOAD BUTTON
if (source == reload) {
if (looping) { //Stop the sound loop.
looping = false;
loopClip.stop();
startLoop.setEnabled(true); //Enable start button.
stopLoop.setEnabled(false); //Disable stop button.
}
loopClip = null; //Reset AudioClip to null.
onceClip = null; //Reset AudioClip to null.
startLoadingSounds();
showStatus("Reloading all sounds.");
return;
}
}
}
/*
* Code is the same in both 1.0 and 1.1.
*/
//Loads and holds a bunch of audio files whose locations are specified
//relative to a fixed base URL.
class SoundList extends java.util.Hashtable {
Applet applet;
URL baseURL;
public SoundList(Applet applet, URL baseURL) {
super(5); //Initialize Hashtable with capacity of 5 entries.
this.applet = applet;
this.baseURL = baseURL;
}
public void startLoading(String relativeURL) {
new SoundLoader(applet, this, baseURL, relativeURL);
}
public AudioClip getClip(String relativeURL) {
return (AudioClip) get(relativeURL);
}
public void putClip(AudioClip clip, String relativeURL) {
put(relativeURL, clip);
}
}
/*
* Code is the same in both 1.0 and 1.1.
*/
class SoundLoader extends Thread {
Applet applet;
SoundList soundList;
URL baseURL;
String relativeURL;
public SoundLoader(Applet applet, SoundList soundList, URL baseURL,
String relativeURL) {
this.applet = applet;
this.soundList = soundList;
this.baseURL = baseURL;
this.relativeURL = relativeURL;
setPriority(MIN_PRIORITY);
start();
}
public void run() {
AudioClip audioClip = applet.getAudioClip(baseURL, relativeURL);
//AudioClips load too fast for me!
//Simulate slow loading by adding a delay of up to 10 seconds.
try {
sleep((int) (Math.random() * 10000));
} catch (InterruptedException e) {
}
soundList.putClip(audioClip, relativeURL);
}
}
*/
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在浏览器中运行的小型应用程序。Applet的概念源自于90年代中期,当时Web页面主要由静态HTML构成,而Java Applet的出现为网页带来了交互性...
5. **音频处理**:Java的`javax.sound.sampled`包提供了音频输入、输出和混音的功能。在本项目中,Applet可能使用这个包来加载并播放背景音乐“童话”。 6. **事件监听**:为了实现用户控制(如暂停、播放、上一张...
总的来说,"applet录音上传"涉及了Java Applet编程、Java Sound API、HTTP通信、文件操作以及可能的音频编码和解码等技术。这个任务展示了Java在构建客户端-服务器应用中的灵活性和强大功能,特别是在处理多媒体数据...
2. **音频处理**:为了播放音符,程序需要与Java Sound API交互。这个API允许开发者读取、写入和播放音频文件,以及生成合成声音。在这个钢琴模拟程序中,当用户点击一个键时,对应的音符会被合成并播放出来。 3. *...
4. **音频播放**:Java的`javax.sound.sampled`包提供了音频输入和输出的功能,用于播放钢琴音符。开发者可能需要加载音频样本或者实时生成音符的声音。 5. **用户交互**:Applet需要能够识别用户的键盘输入,以...
Java提供了一套完整的音频处理API,包括`javax.sound.sampled`包,它允许开发者录制、播放、混合和处理音频数据。在钢琴模拟程序中,开发者可能利用了这些API来实现音符的播放。例如,通过`Clip`类加载和播放音轨,...
- **多媒体支持**:Java提供`javax.sound`包来处理音频,像`music.wav`这样的文件可以通过Java程序进行播放。 由于Java Applet的安全性和兼容性问题,现在很少在新项目中使用。不过,理解其工作原理和历史背景对于...
对于音乐播放,开发者可能使用Java Sound API,它提供了音频输入、输出和处理的功能。 在设计音乐播放器的GUI时,开发者需要考虑用户体验,合理布局各个控件,确保操作直观易懂。例如,播放按钮通常用播放图标表示...
3. **SoundApplet**:这是主文件,使用AppletSoundList来管理音频文件,并通过调用AudioClip的相关方法来播放、停止或循环音频。 在Java中,支持的主要音频文件类型有: - **AU/SND**:通用于Solaris和下一代机器...
Java Applet是一个嵌入在网页中的小程序,由Java语言编写,可以提供丰富的交互性功能,如本例中的倒计时有声定时器。这个特定的Java Applet项目名为"TimeCount",它不仅实现了基本的倒计时功能,还特别加入了声音...
4. **多媒体处理**:Java提供了`javax.sound.sampled`和`javax.media`包来处理音频和视频。对于音频,我们需要了解如何打开、读取和播放音频文件,可能需要使用`AudioInputStream`和`Clip`。对于视频,可能需要使用...
音乐播放功能可能使用了Java的音频API,如`javax.sound.sampled`包中的类。开发者可以加载音频文件,设置音量和播放模式,然后在适当的时间点启动播放。 水中倒影的实现可能涉及到图像处理算法。开发者可能使用了...
Applet可以用于集成音频、视频等多媒体元素,利用Java的多媒体库,如Java Sound API,实现丰富的媒体播放功能。 12.4 Applet中的鼠标和键盘事件 Applet可以通过重写`MouseListener`和`KeyListener`接口的方法来处理...
在这个Java版本中,我们看到的是利用Java编程语言和Applet技术实现的《俄罗斯方块》。Applet是Java的一种小程序,可以在Web浏览器中运行,这使得用户无需安装额外软件即可在网页上体验游戏。 首先,我们需要理解...
总结来说,这个Java Applet录音机项目是一个关于Java Applet和Java Sound API的实战示例,对于想要了解这两方面知识的开发者来说,它提供了一个很好的学习资源。通过分析和理解源代码,我们可以学习到如何在Web环境...
开发者可能使用了Java的音频处理API,如javax.sound.sampled包,来加载和播放音乐文件。这些API提供了读取、处理和播放音频的能力,可以处理各种音频格式,如MP3、WAV等。用户可能通过Applet界面选择不同的音乐文件...
Java Sound API(javax.sound.sampled包)可以用于播放、录制、合成和处理音频。开发者需要加载音频样本,映射到钢琴键,并在键被按下时播放对应的音符。 6. **布局管理**:为了在Applet中合理地排列元素,需要了解...
Applet可以使用Java的音频API播放声音文件,如`javax.sound.sampled`包中的类。对于图像操作,可以使用`Image`类和相关的处理方法。 6. **Applet的通信** Applet可以通过`getParameter()`获取HTML参数,或者使用`...
对于想要深入学习Java Applet录音机的开发者,可以从提供的源代码开始分析,理解如何使用Java Sound API来捕获音频,以及如何在Applet生命周期中管理录音过程。同时,也可以参考Java官方文档和其他在线教程来增强...