java音頻教程
❶ java 實現音頻播放
這個程序只要寫對了音樂文件的URL地址,例如:new URL("file:/C:/tmp/1/Windows Ding.wav");
就可以播放音樂,除了可以播放.wav格式的音樂,還可以播放.au格式的音樂。
另外,如果你不希望音樂循環播放,你可以去掉audio1.loop();這一語句。
import java.applet.AudioClip;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFrame;
public class D extends JFrame{
D(){
setSize(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
URL codebase=null;
try {
codebase = new URL("file:/C:/tmp/1/Windows Ding.wav");
} catch (MalformedURLException e) {
e.printStackTrace();
}
AudioClip audio1=Applet.newAudioClip(codebase);
audio1.loop();
}
public static void main(String[] args) {
new D();
}
}
❷ java編程:怎麼播放一個音頻
1.在Applet中播放聲音
播放聲音是java對多媒體的支持一個重要部分.
現今流行的聲音格式有wav,mid,au為擴展名的聲音文件。
而java現主要支持以au為名的聲音。
在Applet中專門提供了類AudioClip來對聲音的支持。
由於Applet的多媒體功能書上都有很清晰的介紹也很簡單。
我們就以一個例子來結束這部分的說明。
import java.applet.*;
public class sounda extends Applet
{
public static void main (String[] args)
{
AudioClip ac = getAudioClip(getCodeBase(), "sloop.au");
ac.play();
// ac.loop();
// ac.stop();
}
}
2.上面例子只是很簡單的說明,AudioClip是java中播放類。
java中提供了兩個很有用的方法getCodeBase(),
getDocumentBase()他們分別返回Applet本身和包含此Applet主頁的URL地址.
上面的sloop.au即機器上的聲音文件。
直接使用了AudioClip的play方法來播放聲音。
二 java應用程序中的聲音播放
由於在應用程序並不支持AudioClip類。
所以播放聲音文件成了一大難題。
sun公司為應用程序中的聲音支持另提供了一個java新包。
sun.audio在這個包下面提供了大部分所需要的聲音處理類。
註:sun包下面還有很多很有意思的技術支持,
如java2D,Tools等,
下面聲音播放測試
import sun.audio.*;
2 imimport sun.audio.*;
import java.io.*;
public class Sound
{
public static voie main(String args[])
{
try {
FileInputStream fileau=new FileInputStream("sloop.au");
AudioStream as=new AudioStream(fileau);
AudioPlayer.player.start(as);
}
catch (Exception e) {}
}
}
註:上面兩例都沒有提供相應的stop方法,
三 javaX中Sound包的應用
當在進行上面的測試過程中,
發現javaX目錄下也提供了一個sound包對java聲音的強大支持,
並且在sun網站的jjse上可下載到相關的大量例子程序.
有志於聲音處理方向的朋友可下載試試,
現在關於如何 在Java 小程序(Applet)中播放音樂以供人邊瀏覽頁面邊欣賞的介紹已經很多了,
但對如何在應用程序(Application)中放音樂的介紹還很少,
下面就逐步地講解一下如何實現。
Jun 當 前 的Java Development Kit 版本1.1.3 並不正式支持在Application 中放音樂文件,
❸ java怎麼用滑鼠單擊事件載入音頻
Java對聲音片段的播放, 一般可以使用兩種方案
1: java.applet.AudioClip 該類可以實現對聲音片段的播放
2:javafx.scene.media.AudioClip 類也可以實現對聲音片段的播放
兩種方法的參考代碼如下
**注意聲音文件和代碼在了同一個包內,如果包不同, 那麼注意文件的肢仿路徑
import局稿java.awt.*;
importjava.awt.event.*;
importjava.net.URL;
importjavax.swing.*;
{
privateURLurl;
publicSoundDemo(){
JPaneljp歷臘纖=newJPanel();
JButtonjb=newJButton("按鈕");
jp.add(jb);
add(jp);
setSize(300,200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//得到文件的url
try{
url=this.getClass().getResource("Note1.wav").toURI().toURL();
}catch(Exceptionex){
ex.printStackTrace();
}
jb.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//因為AudioClip類同名,為了區別,所以寫的是完整的全限定名
//方法一:JavaFX的方式
javafx.scene.media.AudioClipau1=newjavafx.scene.media.AudioClip(url.toExternalForm());
au1.play();
//方法二:applet的方式
java.applet.AudioClipau2=java.applet.Applet.newAudioClip(url);
au2.play();
}
});
}
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
newSoundDemo().setVisible(true);
}
});
}
}
❹ 如何在java應用程序中播放音頻文件
java里可以使用AudioClip 來播放音頻文件
API參考內容如下
AudioClip 介面是用於播放音頻剪輯的簡單抽象。多個 AudioClip 項能夠同時播放,得到的聲音混合在一起可產生合成聲音。
從以下版本開始:
JDK1.0
方法摘要
void loop()
以循環方式開始播放此音頻剪輯。
void play()
開始播放此音頻剪輯。
void stop()
停止播放此音頻剪輯。
當然了, 如果播放比較復雜的音頻視頻, 那麼可以使用java媒體框架 JMF
❺ java設置聲道音量
在Java中設置聲道音量可以使用javax.sound.sampled.Line介面提供的FloatControl類。該類提臘碼斗供了設置音頻組件控制參數的方法,其中包括設置輸出音量輪磨方法。
首先創建 AudioInputStream 對象並使用 Java 音頻系統打開一個 WAV 文件,然後使用 Clip 類來播放音頻。接著,我們使用 clip.getControl() 方法獲取 FloatControl 對象,並使模瞎用 setValue() 方法來設置音量和平衡值。注意,MASTER_GAIN 控制器用於設置總音量,其取值范圍為 -80.0f 到 6.0206f 分貝,PAN 控制器用於設置左右聲道平衡值,其取值范圍為 -1.0f 到 1.0f。
最後,我們啟動音頻播放器線程,並正在播放音頻的同時等待 10 秒鍾,然後停止播放器並關閉音頻文件。
需要注意的是,不是所有音頻格式都支持設置音量和平衡值,具體實現可能會因為您使用的音頻格式而略有不同。
❻ 怎樣在java中播放音樂
使用play()方法進行播放世陪,loop()方法循環播放,stop()方法停止播放。
實際例子:
File file1 = new File("src\\music\\11.wav");
AudioClip sound1;
sound1 = Applet.newAudioClip(file1.toURL());
sound1.play();
這樣就實現了播放音樂的功能,注意J2SE默認只支持氏襪 wav格式的音搜核蠢頻。
❼ 如何在java應用程序中播放音頻文件
在 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中怎麼加入聲音
java中可以使用AudioPlayer來播放音樂,實例如下:
publicclassMySound{
publicMySound(){
//C:ProgramFilesJavajdk1.6.0jrelib t.jar這個jar包怎麼加進工程,我放皮薯在那個工程中燃枝者也沒用
try {
InputStreamin=newFileInputStream("hello.wav");//找到這個音樂文件搭慧
AudioStreamas=newAudioStream(in);
AudioPlayer.player.start(as);//開始播放
//AudioPlayer.player.stop(as);
}catch(FileNotFoundExceptione){
}
catch(IOExceptione){
}
}
publicstaticvoidmain(String[]args) {
newMySound3();
}
}
❾ java如何播放聲音
對聲音媒體的直接支持可以說是Java的一大特色,尤其是在動畫中配上聲音效果,就可以使人在視覺上和聽覺上均得到美的享受,那才叫過癮。Java中播放聲音文件與顯示圖像文件一樣方便,同樣只需要先遲手將聲音文件裝載進來,然後播放就行了。
Java目前支持的聲音文件只有一種格式,那就是SUN公司的AU格式(.AU文件),也稱為u-law格式。由於AU格式的聲音僅有8KHz的采樣頻率且不支持立體聲效果,所以音質不算太好。唯一的好處就是AU聲音文件的尺寸比其它格式小,有利於網上傳輸。一般,我們較熟悉的大都是WAV格式的聲音文件,因此必須先將它們轉換為AU格式(可以選用Goldwave軟體來進行這種格式轉換)。
聲音文件准備好以後,就可以考慮將它裝載進來並播放。在Applet類中提供的play( )方法可以將聲音文件的裝載與播放一並完成,其調用格式如下:
void play(URL url)
void play(URL url, String name)
可見,play( )方法的調用格式與getImage( )方法是完全一樣的,也採用URL來定位聲音文件。例如,某聲音文件audio.au與applet文件存放在同一目錄下,可以這樣寫:
play(getCodeBase( ),"audio.au");
一旦play( )方法裝載了該聲音文件,就立即播放。如果找不到指定URL下的聲音文件,play( )方法不返回出錯信息,只是聽不到想聽的聲音而已。
由於play( )方法只能將聲音播放一遍,返虧若想循環播放某聲音作為背景音樂,就需要用到功能更強大的AudioClip類,它能更有效地管理聲音的播放操作。因為它被定義在java.applet程序包中,所以使用該類的話,不要忘了在程序頭部加上:
import java.applet.AudioClip;
為了得到AudioClip對象,我們可以調用Applet類中的getAudioClip( )方法。它能裝載指定URL的聲音文件,並返回一個AudioClip對象,其調用格式如下:
AudioClip getAudioClip(URL url)
AudioClip getAudioClip(URL url, String name)
得到AudioClip對象以後,就可以調用AudioClip類中所提供的各種方法來操作其中的聲音數據,這些方法如表4-4所示。
如果getAudioClip( )方法沒有找到所指定的聲音文件,就會返回null值。所以,在調用表4-4中所列的方法前,應該先檢查一下得到的AudioClip對象不是null,因為在null對象上調用上述方法將導致出錯。
如果需要的話,我們還可以在applet中同時裝載幾個聲音文件來一起播放,到時候,這些聲音將混合在一起,就象二重奏一樣。另外還有一點要說明的是,如果我們使用AudioClip對象的loop( )方法來重復播放背景音樂時,千萬不要忘記在適當的時候調用AudioClip對象的stop( )方法來結束放音,否則的話,即使用戶離開這一Web頁面,該聲音也不會停止,這無疑將會惹惱用戶。因此,一般我們都在applet的stop( )方法中添上停止播放的代碼。
例如,下面這段程序將播放兩段聲音,一段是連續播放的背景音樂,另一段是講話錄音。
import java.applet.AudioClip;
public class Audios extends java.applet.Applet{
AudioClip bgmusic,speak;
碼世嫌 public void init(){
bgmusic=getAudioClip(getDocumentBase(),"space.au");
speak=getAudioClip(getDocumentBase(),"intro.au");
}
public void start(){
if(bgmusic!=null)
bgmusic.loop();
if(speak!=null)
speak.play();
}
public void stop(){
if(bgmusic!=null)
bgmusic.stop(); //關閉背景音樂,切記。
}
}
package com.hongyuan.test;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import
javax.sound.sampled.AudioInputStream;
import
javax.sound.sampled.AudioSystem;
import
javax.sound.sampled.DataLine;
import
javax.sound.sampled.LineUnavailableException;
import
javax.sound.sampled.SourceDataLine;
import
javax.sound.sampled.UnsupportedAudioFileException;
public class MusicTest {
public static final String MUSIC_FILE = "相逢一笑.wav";
public static void main(String[] args) throws
LineUnavailableException,
UnsupportedAudioFileException, IOException {
// 獲取音頻輸入流
AudioInputStream audioInputStream =
AudioSystem
.getAudioInputStream(new File(MUSIC_FILE));
//
獲取音頻編碼對象
AudioFormat audioFormat = audioInputStream.getFormat();
// 設置數據輸入
DataLine.Info dataLineInfo = new
DataLine.Info(SourceDataLine.class,
audioFormat,
AudioSystem.NOT_SPECIFIED);
SourceDataLine sourceDataLine =
(SourceDataLine)
AudioSystem
.getLine(dataLineInfo);
sourceDataLine.open(audioFormat);
sourceDataLine.start();
/*
* 從輸入流中讀取數據發送到混音器
*/
int count;
byte tempBuffer[]
= new byte[1024];
while ((count = audioInputStream.read(tempBuffer, 0,
tempBuffer.length)) != -1) {
if (count > 0)
{
sourceDataLine.write(tempBuffer, 0, count);
}
}
//
清空數據緩沖,並關閉輸入
sourceDataLine.drain();
sourceDataLine.close();
}
}
❿ JAVA程序中如何插入音頻文件
在JAVA.applet中有AudioClip類支持播放,但好像只支持播放au和 wav格式的
代碼:
AudioClip ac=getAudioClip (getCodeBase(), File);
// 創 建Audioclip 對 象 並 裝 入.au 文 件
ac.play(); // 播 放 一 次
ac.stop(); // 停 止 播 放
ac.loop(); // 循 環 播 放