六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

JAVA的聲音處理方法 (轉自伊氏女人)

[摘要]JAVA的聲音處理方法 作者:蝙蝠vs墮落   編輯:violet JAVA的聲音處理   數字音頻格式有很多種,其質量與采樣頻率和采樣精度兩個參數有關。頻率的表示單位為赫茲〔Hz〕,它表示每秒采樣次數。采樣頻率越高,音質就越好。采樣精度為每次采樣所存儲的數據數量,它決定每個數字信號所能夠表...
JAVA的聲音處理方法


作者:蝙蝠vs墮落   編輯:violet

 
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()
功能:循環播放聲音片斷。
調用該方法是不論聲音片斷是否已在播放,都從頭開始播放。

■ 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主要包括以下四部分:

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文件。




主站蜘蛛池模板: 特黄特黄一级片 | 天天干天天碰 | 欧美亚洲一区 | 中文字幕免费视频精品一 | 色天使色护士 在线视频观看 | 亚洲成人午夜影院 | 日韩高清在线高清免费 | 五月天婷婷免费观看视频在线 | 色综合网站在线 | 天天天综合 | 天干天夜啪天天碰 | 亚洲福利精品一区二区三区 | 亚色最新网址 | 亚洲乱码在线 | 在线视频国产一区 | 婷婷丁香五月中文字幕 | 亚洲网站视频在线观看 | 欧美又硬又粗又长又大 | 五月婷婷深爱 | 性视频网| 五月天久久综合 | 中文字幕在线播放第一页 | 四虎影院成人在线观看 | 亚洲国产一区二区三区最新 | 青青青视频免费线看 视频 青青青视频免费观看 | 四虎影院2022 | 中日韩欧美视频 | 日本午夜免费福利视频 | 任我爽在线视频精品凹凸精品分类 | 亚洲精品中文字幕午夜 | 欧美性高清suv | 四虎影视在线影院在线观看 | 色综合综合 | 色综合天天综合网国产成人网 | 综合亚洲欧美 | 欧美综合视频在线 | 午夜影院18| 五月网婷婷 | 日韩综合在线视频 | 青青草国 | 午夜爱爱毛片xxxx视频免费看 |