5 07, 2007

JAVAµÄÉùÒô´¦Àí(ת)

¡¡¡¡Êý×ÖÒôƵ¸ñʽÓкܶàÖÖ£¬ÆäÖÊÁ¿Óë²ÉÑùƵÂʺͲÉÑù¾«¶ÈÁ½¸ö²ÎÊýÓйء£ÆµÂʵıíʾµ¥Î»ÎªºÕ×È¡²Hz¡³£¬Ëü±íʾÿÃë²ÉÑù´ÎÊý¡£²ÉÑùƵÂÊÔ½¸ß£¬ÒôÖʾÍÔ½ºÃ¡£²ÉÑù¾«¶ÈΪÿ´Î²ÉÑùËù´æ´¢µÄÊý¾ÝÊýÁ¿£¬Ëü¾ö¶¨Ã¿¸öÊý×ÖÐźÅËùÄܹ»±íʾµÄÀëÉ¢Õñ·ùµÄÊýÁ¿¡£´æ´¢Ã¿¸öÑù±¾µÄÊý¾ÝÔ½¶à£¬ÒôÖʾÍÔ½ºÃ¡£µ«ÊÇ¸ßÆ·ÖʵÄÉùÒôÐèÒªÕ¼ÓôóÁ¿µÄÄÚ´æºÍ´ÅÅ̿ռ䡣¿¼Âǵ½ÍøÂç´ø¿í£¬ÔÚInternetÁ¬½ÓÉÏ´«Êä¾ÍÐèÒª»¨·ÑºÜ³¤µÄʱ¼ä¡£¶ÔÓÚAppletÀ´Ëµ£¬±£Ö¤ÉùÒôÎļþµÄ×îС»¯ÊǼ«ÎªÖØÒªµÄ¡£


JavaÄܹ»Ö§³ÖÒÔÏÂËÄÖÖÉùÒô¸ñʽ£º

¡ôAU
¡ôAIFF
¡ôWAVE
¡ôMIDI

¡¡¡¡µÚÒ»ÖÖÉùÒô¸ñʽAUΪÒÔǰµÄJava 1.1°æ±¾Ö§³ÖµÄΨһµÄÉùÒô¸ñʽ¡£²ÉÑùƵÂÊΪ8000ºÕ×È£¬²ÉÑù¾«¶ÈΪ8λ¡£AIFFºÍWAVEÓëAU¸ñʽһÑù£¬¶¼ÓÃÀ´±íʾÊý×Ö»¯µÄÉùÒô¡£ÆäÖУ¬WAVE¸ñʽÌṩÁ˸ü¿í·¶Î§µÄÒôÖÊ¡£MIDI¸ñʽרÓÃÓÚÒôÀÖ£¬²¢ÇÒÒÔÒô·ûÓëÀÖÆ÷¶ø²»ÊÇÊý×Ö»¯µÄÉùÒôÀ´ÃèÊöÉùÒôµÄ¡£

¡¡¡¡¹ØÓÚÉùÒôµÄ´´½¨£ºÉùÒô¹Ø¼ü¹¤¾ßΪWindows9XÖеıê×¼Ó¦ÓóÌÐò?¼Òô»ú¡£Â¼ÖƵĸñʽΪWAVE¡£ÁíÍ⻹Óкܶàרҵˮ׼µÄÓ¦ÓóÌÐò£¬²ÉÑùºÍ±à¼­Êý×Ö»¯µÄÉùÒô£¬¼°¸ñʽµÄת»»¡£


×ÊÔ´ÐèÇó£º

¡ö Ó²¼þ×ÊÔ´ÐèÇó£º
¢ÅÉù¿¨
¢ÆÒôÏä
££ÈçÐèÒªÂ¼ÖÆÉùÒô£¬Õ⻹ÐèÂó¿Ë·ç¡£

¡ö Èí¼þ×ÊÔ´ÐèÇó£º
¢Åwindows9X²Ù×÷ϵͳ
¢ÆÍøÂçä¯ÀÀÆ÷
¢ÇJava²å¼þ/ÔËÐÐʱ¼ä»·¾³


´¦Àí·½°¸Ò»

¡¡¡¡JAVA2¿ªÊ¼£¬×¦ÍÛÓïÑÔÄܹ»Ö§³ÖÉÏÊöËÄÖÖÉùÒô¸ñʽ¡£¼òµ¥µÄ·½·¨ÎªÔÚjavaÖÐͨ¹ýAppletÀàµÄAudioClip()½Ó¿ÚÀ´×°ÔØÉùÒô¡£¸Ã½Ó¿Ú·ç×êÁËÓйØÉùÒôƬ¶ÏµÄ³£Ó÷½·¨£¬¾ßÓжԲ¥·ÅÉùÒôƬ¶ÏµÄ×îС֧³Ö¡£

¸Ã½Ó¿Ú¶¨ÒåÁËÈçÏ·½·¨£º
¡ö play()
Óï·¨£ºvoid play()
¹¦ÄÜ£º¿ªÊ¼²¥·ÅÉùÒôƬ¶Ï¡£
²»ÂÛÉùÒôƬ¶ÏÊÇ·ñÒѾ­ÔÚ²¥·Å£¬¶¼´ÓÍ·²¥·Å¡£²¥·ÅÒ»±éµ«²»Öظ´¡£

¡ö loop()
Óï·¨£ºvoid loop()
¹¦ÄÜ£ºÑ­»·²¥·ÅÉùÒôƬ¶Ï¡£
µ÷Óø÷½·¨ÊDz»ÂÛÉùÒôƬ¶ÏÊÇ·ñÒÑÔÚ²¥·Å£¬¶¼´ÓÍ·¿ªÊ¼²¥·Å¡£

¡ö stop()
Óï·¨£ºvoid stop()
¹¦ÄÜ£ºÍ£Ö¹²¥·ÅÉùÒôƬ¶Ï¡£
AudioClip½Ó¿Ú¿ÉÒÔͨ¹ýgetAudioClip()¼°getCodeBase()·½·¨À´»ñÈ¡ÉùÒôƬ¶Ï¼°
URLµØÖ·¡£¿ÉÒÔÀûÓô˷½·¨ÔÚWEBÒ³Öв¥·ÅÖ¸¶¨µÄÉùÒôƬ¶Ï¡£
££ÐèÇ󣺻ùÓÚJDK1.2ÒÔÉϰ汾µÄ¿ª·¢»·¾³¡£Èç¹ûÖ»²¥·ÅAU¸ñʽµÄÉùÒôÎļþ£¬JDK1
.1¾Í¿É¡£

¸½£ºsoundtest.htmlÔ´´úÂë
¡¶HTML¡·
¡¶HEAD¡·
¡¶TITLE¡·
HTML Test Page
¡¶/TITLE¡·
¡¶/HEAD¡·
¡¶BODY¡·
¡¶APPLET
CODEBASE = "" CODE = "test.class" NAME = "TestApplet" WID
TH = 400 HEIGHT = 200 HSPACE = 0 VSPACE = 0 ALIGN = mi
ddle¡·
¡¶PARAM NAME = "clip" VALUE = "sound.AU"¡·
¡¶/APPLET¡·
¡¶/BODY¡·
¡¶/HTML¡·
¸½£ºtest,javaÔ´´úÂë
package SoundTest;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.net.*;
public class test extends JApplet {
boolean isStandalone = false;
String sound;
JButton jButtonPlay = new JButton();
JButton jButtonLoop = new JButton();
JButton jButtonStop = new JButton();
JLabel jLabel1 = new JLabel();
AudioClip clip;
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public test() {
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
jButtonPlay.setText("Play");
jButtonPlay.setBounds(new Rectangle(50, 85, 80, 40));
jButtonPlay.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jButtonPlay_mouseClicked(e);
}
});
this.setSize(new Dimension(400,200));
this.getContentPane().setLayout(null);
jButtonLoop.setText("Loop");
jButtonLoop.setBounds(new Rectangle(150, 85, 80, 40));
jButtonLoop.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jButtonLoop_mouseClicked(e);
}
});
jButtonStop.setText("Stop");
jButtonStop.setBounds(new Rectangle(250, 85, 80, 40));
jButtonStop.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(MouseEvent e) {
jButtonStop_mouseClicked(e);
}
});
jLabel1.setText("Sound Test Demo");
jLabel1.setBounds(new Rectangle(109, 28, 186, 28));
this.getContentPane().add(jButtonPlay, null);
this.getContentPane().add(jButtonStop, null);
this.getContentPane().add(jButtonLoop, null);
this.getContentPane().add(jLabel1, null);
try { sound = this.getParameter("clip", "sound.AU"); } catch (Exce
ption e) { e.printStackTrace(); }
if(sound!=null){
try{
clip=JApplet.newAudioClip (new URL(getCodeBase(),sound));

}
catch(MalformedURLException e){
System.out.println ("Bad URL");
}
}
}
//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}
//Get parameter info
public String[][] getParameterInfo() {
String[][] pinfo =
{
{"clip", "String", "sound.AU"},
};
return pinfo;
}
void jButtonPlay_mouseClicked(MouseEvent e) {
clip.play();
}
void jButtonLoop_mouseClicked(MouseEvent e) {
clip.loop();
}
void jButtonStop_mouseClicked(MouseEvent e) {
clip.stop();
}
}


´¦Àí·½°¸¶þ

¡¡¡¡ÀûÓÃJAVAýÌå¿ò¼ÜÖеÄSound APIÀ´´¦ÀíÉùÒôƬ¶Ï¡£Sound API ±»°üº¬ÔÚSUN¹«Ë¾µÄJAVAýÌå¿ò¼ÜÖУ¬Ò²°üº¬ÔÚJDK1.3°æ±¾ÖС£±àÒëÔ´´úÂëÐèÒªÖ§³ÖJDK1.3µÄ¿ª·¢»·¾³ºÍÔËÐÐʱ¼ä»·¾³¡£

¡¡¡¡¿ÉÒÔÀûÓÃSound APIÔÚÍøÒ³ÖмÓÈëAppletµÄ·½Ê½´ïµ½ÒªÇó¡£µ«ä¯ÀÀÆ÷ÐèҪͨ¹ýJava²å¼þ»òÔËÐÐʱ¼ä»·¾³µÄÖ§³Ö¡£

Sound APIÖ÷Òª°üÀ¨ÒÔÏÂËIJ¿·Ö£º

Packages
javax.sound.midi ÌṩMIDI (Musical Instrument Digital Interface)µÄI/O¡¢
ÐòÁС¢ºÏ³ÉµÄ½Ó¿ÚºÍÀà¡£
javax.sound.midi.spi Supplies interfaces for service providers to impl
ement when offering new MIDI devices, MIDI file readers and writers, o
r sound bank readers.
javax.sound.sampled Ϊ²ÉÑùÊý×ÖÒôƵµÄ²¶»ñ¡¢´¦Àí¡¢ÖØ·ÅÌṩ½Ó¿ÚºÍÀà¡£
javax.sound.sampled.spi Supplies abstract classes for service provider
s to subclass when offering new audio devices, sound file readers and
writers, or audio format converters.



´¦Àí·½°¸Èý

¡¡¡¡ÀûÓÃJAVA 3DÖеÄsoundÀà¡£¸ÃÀàËÆÉùÒô×ÊÔ´µÄ³éÏó¶¨Ò塣ÿһ¸ö¾ßÌåµÄÉùÒô¶ÔÏ󶼿ÉÒÔÓ¦ÓÃsoundµÄ·½·¨¡£

SoundÀàµÄÀà¹ØÏµÈçÏ£º
java.lang.Object
+-javax.media.j3d.SceneGraphObject
+-javax.media.j3d.Node
+-javax.media.j3d.Leaf
+-javax.media.j3d.Sound

soundÀàµÄ×ÓÀàÓУº
¢±BackgroundSound
¢²PointSound
¢³ConeSound

ʹÓÃÉÏÊöÈýÖÖÉùÒôµÄ²½ÖèÈçÏ£º

¢±¶¨Òå²¢Éú³ÉÒ»¸öMediaContainer¶ÔÏó£¬Í¬Ê±Ìṩ¶ÔÏóËùÐèÒªµÄÉùÒôÎļþ£¬Í¨³£
Òªµ¥¶ÀÉèÖÃÒ»¸ö´æ·ÅAU/WAVÉùÒôÎļþµÄĿ¼¡£

¢²¶¨ÒåÒ»¸öBackgroundSound/ PointSound/ ConeSound¶ÔÏ󣬸ù¾ÝÐèÒª£¬ÉèÖÃÉù
ÒôµÄÊÇ·ñÑ­»·¡¢Ç¿¶È´óСµÈ²ÎÊý£¬ÉèÖÃËüµÄ×÷Ó÷¶Î§²¢setEnableÓÃʹÆä¿ªÊ¼×÷Óá£

¢³¸ù¾Ý¾ßÌåµÄ¶ÔÏóÉèÖÃ×ø±êϵ¡£
££JAVA 3DÓ¦ÓóÌÐòÖ»Äܲ¥·Åau/wav¸ñʽµÄÉùÒôÎļþ¡£²»Äܲ¥·ÅmidiÎļþ
×îлظ´
·¢±íÆÀÂÛ













Bold Italic Link