真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java播放音頻的源代碼 java實(shí)現(xiàn)音樂(lè)播放

java應(yīng)用程序中播放mid音樂(lè)的代碼,求助?。。?!

import sun.audio.*;

專(zhuān)注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)惠城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

import java.io.*;

import java.awt.*;

import java.awt.event.*;

class Sound5

{

FileInputStream file;

BufferedInputStream buf;

public Sound5()

{

try

{

file=new FileInputStream("1.mid");

buf=new BufferedInputStream(file);

AudioStream audio=new AudioStream(buf);

AudioPlayer.player.start(audio);

}

catch (Exception e) {}

}

}

public class e8165 extends Frame implements ActionListener

{

e8165()

{

super("音頻播放器");

setBounds(300,300,200,100);

setVisible(true);

Button btn=new Button("播放");

setLayout(new FlowLayout());

add(btn);

btn.addActionListener(this);

validate();

// Sound5 play = new Sound5();

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{ System.exit(1); }

});

}

public void actionPerformed(ActionEvent e)

{

Sound5 play = new Sound5();

}

public static void main(String[] args)

{

new e8165();

}

}

//下載一個(gè).mid文件命名為1,放在上述代碼的包下

如何在java應(yīng)用程序中播放音頻文件

在?applet?中播放聲音文件非常簡(jiǎn)單,一般需要以下步驟:創(chuàng)建一個(gè)?AudioClip?對(duì)象

裝入?.au?聲音文件到?AudioClip?對(duì)象

一次播放或者不停循環(huán)播放聲音

停止播放

下面是相應(yīng)的代碼:import?java.applet.*;AudioClip?ac?=?getAudioClip(getCodeBase(),?soundFile);

ac.play();?//play?once

ac.stop();?//stop?playing

解決這個(gè)問(wèn)題的竅門(mén)是利用由?Sun?及?其JDK?提供的某些?undocumented?的特征。先看看?Sun?JDK?中的文件?classes.zip?(使用任何解壓工具即可),發(fā)現(xiàn)其中不僅包含標(biāo)準(zhǔn)的?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);如果要用一個(gè)?URL?做為聲音流的源(source),則用下面的代碼所示替換輸入流來(lái)創(chuàng)建聲音流:AudioStream?as?=?new?AudioStream?(url.openStream());如果需要持續(xù)播放聲音文件,則要稍稍復(fù)雜一點(diǎn)://?Create?audio?stream?as?discussed?previously.

//?Create?AudioData?source.

AudioData?data?=?as.getData();//?Create?ContinuousAudioDataStream.

ContinuousAudioDataStream?cas?=?new?ContinuousAudioDataStream?(data);//?Play?audio.

跪求java 音樂(lè)播放的代碼啊,完美運(yùn)行的就行

import java.applet.Applet;

import java.applet.AudioClip;

import java.awt.AWTException;

import java.awt.Frame;

import java.awt.SystemTray;

import java.awt.TrayIcon;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.*;

public class bofan_2 extends JFrame implements ActionListener

{

boolean looping=false;

File file1=null;

AudioClip sound1;

AudioClip chosenClip;

private JComboBox box1=null; //歌曲列表

private JButton butbofan=null; //播放

private JButton butboxhuan=null; //循環(huán)播放

private JButton buttinzi=null; //停止

private JButton butshan=null; //上一首

private JButton butzhantin=null; //暫停

private JButton butxia=null; //下一首

private TrayIcon trayIcon;//托盤(pán)圖標(biāo)

private SystemTray systemTray;//系統(tǒng)托盤(pán)

public bofan_2()

{

this.setSize(420,400);

this.setResizable(false);

this.setLocationRelativeTo(null);

this.setLayout(null);

box1=new JComboBox();

box1.addItem("傷心太平洋");

box1.addItem("勁爆的士高");

box1.addItem("老夫少妻");

box1.addItem("愛(ài)不再來(lái)");

box1.addItem("抽身");

box1.addItem("傷心城市");

box1.addItem("二零一二");

box1.addItem("精忠報(bào)國(guó)");

box1.addItem("秋沙");

box1.addItem("吻別");

box1.addItem("音樂(lè)瘋起來(lái)");

box1.setBounds(10,20,150,20);

butbofan=new JButton("播放");

butbofan.addActionListener(this);

butbofan.setBounds(165,50,60,20);

butboxhuan=new JButton("循環(huán)播放");

butboxhuan.addActionListener(this);

butboxhuan.setBounds(230,50,90,20);

buttinzi=new JButton("停止");

buttinzi.setEnabled(false);

buttinzi.addActionListener(this);

buttinzi.setBounds(335,50,60,20);

butshan=new JButton("上一首");

butshan.addActionListener(this);

butshan.setBounds(165,90,80,20);

butzhantin=new JButton("暫停");

butzhantin.setEnabled(false);

butzhantin.addActionListener(this);

butzhantin.setBounds(250,90,60,20);

butxia=new JButton("下一首");

butxia.addActionListener(this);

butxia.setBounds(320,90,80,20);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.getContentPane().add(box1);

this.getContentPane().add(butbofan);

this.getContentPane().add(butboxhuan);

this.getContentPane().add(buttinzi);

this.getContentPane().add(butshan);

this.getContentPane().add(butzhantin);

this.getContentPane().add(butxia);

try {

UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel");

} catch (ClassNotFoundException e)

{

e.printStackTrace();

} catch (InstantiationException e)

{

e.printStackTrace();

} catch (IllegalAccessException e)

{

e.printStackTrace();

} catch (UnsupportedLookAndFeelException e)

{

e.printStackTrace();

}

setSize(450,450);

systemTray = SystemTray.getSystemTray();//獲得系統(tǒng)托盤(pán)的實(shí)例

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

try {

trayIcon = new TrayIcon(ImageIO.read(new File("004.jpg")));

systemTray.add(trayIcon);//設(shè)置托盤(pán)的圖標(biāo),0.gif與該類(lèi)文件同一目錄

}

catch (IOException e1)

{

e1.printStackTrace();

}

catch (AWTException e2)

{

e2.printStackTrace();

}

this.addWindowListener(

new WindowAdapter(){

public void windowIconified(WindowEvent e)

{

dispose();//窗口最小化時(shí)dispose該窗口

}

});

trayIcon.addMouseListener(new MouseAdapter()

{

public void mouseClicked(MouseEvent e){

if(e.getClickCount() == 2)//雙擊托盤(pán)窗口再現(xiàn)

setExtendedState(Frame.NORMAL);

setVisible(true);

}

});

this.setVisible(true);

}

public void actionPerformed(ActionEvent e)

{

Object source = e.getSource();

if (source== butbofan)

{

System.out.println((String) box1.getSelectedItem());

file1=new File((String) box1.getSelectedItem()+".wav");

butboxhuan.setEnabled(true);

buttinzi.setEnabled(true);

butzhantin.setEnabled(true);

butzhantin.setText("暫停");

try {

sound1 = Applet.newAudioClip(file1.toURL());

chosenClip = sound1;

} catch(OutOfMemoryError er){

System.out.println("內(nèi)存溢出");

er.printStackTrace();

} catch(Exception ex){

ex.printStackTrace();

}

chosenClip.play();

this.setTitle("正在播放"+(String) box1.getSelectedItem());

}

if (source== butboxhuan)

{

file1=new File((String) box1.getSelectedItem()+".wav");

try {

sound1 = Applet.newAudioClip(file1.toURL());

chosenClip = sound1;

} catch(OutOfMemoryError er){

System.out.println("內(nèi)存溢出");

er.printStackTrace();

} catch(Exception ex){

ex.printStackTrace();

}

looping = true;

chosenClip.loop();

butboxhuan.setEnabled(false);

buttinzi.setEnabled(true);

butzhantin.setText("暫停");

this.setTitle("正在循環(huán)播放"+(String) box1.getSelectedItem());

}

if (source== buttinzi)

{

if (looping)

{

looping = false;

chosenClip.stop();

butboxhuan.setEnabled(true);

butzhantin.setText("暫停");

} else {

chosenClip.stop();

}

buttinzi.setEnabled(false);

this.setTitle("停止播放");

}

if(source==butshan)

{

butzhantin.setText("暫停");

}

if(source==butzhantin)

{

buttinzi.setEnabled(false);

butzhantin.setText("繼續(xù)");

if(source==butzhantin)

{

butzhantin.setText("暫停");

}

}

if(source==butxia)

{

butzhantin.setText("暫停");

}

}

public static void main(String[] args)

{

bofan_2 xx=new bofan_2();

}

}

/*

可以用加載聲音文件的方法:

第一幀:mysound= new Sound();

mysound.attachSound(聲音id名字);

ptime = 0;

播放按鈕as:

on(release){

mysound.start(ptime);

}

暫停按鈕as:

on(release){

ptime = mysound.position/1000;

mysound.stop();

}

*/

求一個(gè)JAVA音樂(lè)播放器的源代碼

import javax.media.ControllerEvent;

import javax.media.ControllerListener;

import javax.media.EndOfMediaEvent;

import javax.media.PrefetchCompleteEvent;

import javax.media.RealizeCompleteEvent;

import javax.media.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class MediaPlayer extends JFrame implements ActionListener,

ItemListener, ControllerListener {

String title;

Player player;

boolean first = true, loop = false;

Component vc, cc;

String currentDirectory=null;

// 構(gòu)造函數(shù),其中包括了設(shè)置響應(yīng)窗口事件的監(jiān)聽(tīng)器。

MediaPlayer(String title) {

super(title);

/* 關(guān)閉按鈕的實(shí)現(xiàn)。。 */

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

dispose();

}

public void windowClosed(WindowEvent e) {

if (player != null)

player.close();

System.exit(0);

}

});

// 調(diào)用程序菜單欄的方法成員完成菜單的布置

setupMenu();

setSize(400, 400);

setVisible(true);

}

// 本方法用以設(shè)置程序菜單欄

public void setupMenu() {

// 設(shè)置一個(gè)菜單

Menu f = new Menu("文件");

// 往設(shè)置的菜單添加菜單項(xiàng)

MenuItem mi = new MenuItem("打開(kāi)");

f.add(mi);

mi.addActionListener(this);

f.addSeparator();

CheckboxMenuItem cbmi = new CheckboxMenuItem("循環(huán)", false);

cbmi.addActionListener(this);

f.add(cbmi);

f.addSeparator();

MenuItem ee = new MenuItem("退出");

ee.addActionListener(this);

f.add(ee);

f.addSeparator();

Menu l = new Menu("播放列表");

Menu c = new Menu("播放控制");

MenuItem move = new MenuItem("播放");

move.addActionListener(this);

c.add(move);

c.addSeparator();

MenuItem pause = new MenuItem("暫停");

pause.addActionListener(this);

c.add(pause);

c.addSeparator();

MenuItem stop = new MenuItem("停止");

stop.addActionListener(this);

c.add(stop);

c.addSeparator();

// 設(shè)置一個(gè)菜單欄

MenuBar mb = new MenuBar();

mb.add(f);

mb.add?;

mb.add(l);

// 將構(gòu)造完成的菜單欄交給當(dāng)前程序的窗口;

setMenuBar(mb);

}

// 動(dòng)作時(shí)間響應(yīng)成員;捕捉發(fā)送到本對(duì)象的各種事件;

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String cufile, selectfile, currentDirectory;

if (e.getActionCommand().equals("退出")) {

// 調(diào)用dispose以便執(zhí)行windowClosed

dispose();

return;

}

// 此事表明擁護(hù)選擇了“播放”命令;

// 如果當(dāng)前有一個(gè)文件可以播放則執(zhí)行播放命令;

if (e.getActionCommand().equals("播放")) {

if (player != null) {

player.start();

}

return;

}

// 如果當(dāng)前正在播放某一文件,則執(zhí)行暫停;

if (e.getActionCommand().equals("暫停")) {

if (player != null) {

player.stop();

}

return;

}

// 停止命令的響應(yīng);

if (e.getActionCommand().equals("停止")) {

if (player != null) {

player.stop();

player.setMediaTime(new Time(0));

}

return;

}

// 用戶選擇要播放的媒體文件

if (e.getActionCommand().equals("打開(kāi)")) {

FileDialog fd = new FileDialog(this, "打開(kāi)媒體文件", FileDialog.LOAD);

// fd.setDirectory(currentDirectory);

2008-2-6 02:46 回復(fù)

肆方茉莉

62位粉絲

6樓

fd.setVisible(true);

// 如果用戶放棄選擇文件,則返回

if (fd.getFile() == null) {

return;

}

// 保存了所選文件的名稱及其路徑名稱已被稍后使用

// 同時(shí)設(shè)置當(dāng)前文件夾路徑

selectfile = fd.getFile();

currentDirectory = fd.getDirectory();

cufile = currentDirectory + selectfile;

// 將用戶選擇的文件作為一個(gè)菜單項(xiàng)加入播放列表,該菜單項(xiàng)名為該文件名;

// 被點(diǎn)擊后給出的命令串是該文件的全路徑名

MenuItem mi = new MenuItem(selectfile);

mi.setActionCommand(cufile);

MenuBar mb = getMenuBar();

Menu m = mb.getMenu(2);

mi.addActionListener(this);

m.add(mi);

} else {

// 程序邏輯運(yùn)行到次表示用戶選擇了一個(gè)“播放列表”中的媒體文件

// 此時(shí)可以通過(guò)如下動(dòng)作獲得該文件的全路徑名

cufile = e.getActionCommand();

selectfile = cufile;

}

// 如果存在一個(gè)播放器,則先將其關(guān)閉,稍后再重新創(chuàng)建

// 創(chuàng)建播放器時(shí)需要捕捉一些異常

if (player != null) {

player.close();

}

try {

player = Manager.createPlayer(new MediaLocator("file:" + cufile));

} catch (Exception e2) {

System.out.println(e2);

return;

}/*

* catch(NoPlayerException e2){ System.out.println("不能找到播放器");

* return ; }

*/

if (player == null) {

System.out.println("無(wú)法創(chuàng)建播放器");

return;

}

first = false;

setTitle(selectfile);

// 設(shè)置處理播放控制器實(shí)際的對(duì)象;

/**/

player.addControllerListener(this);

player.prefetch();

}

// 菜單狀態(tài)改變事件的響應(yīng)函數(shù);

public void itemStateChanged(ItemEvent arg0) {

// TODO Auto-generated method stub

}

public static void main(String[] args) {

// TODO Auto-generated method stub

new MediaPlayer("播放器");

}

// 調(diào)用繪圖函數(shù)進(jìn)行界面的繪制 // public void update() {

// }

// 繪圖函數(shù)成員 //public void paint(Graphics g) {

// }

public void controllerUpdate(ControllerEvent e) {

// TODO Auto-generated method stub

Container tainer = getContentPane();

// 調(diào)用player.close()時(shí)ControllerClosedEvent事件出現(xiàn)

// 如果存在視覺(jué)部件,則該部件應(yīng)該拆除(為了一致起見(jiàn),我們對(duì)控制面版部件也執(zhí)行同樣的操作,下一次需要時(shí)再構(gòu)造)

if (e instanceof ControllerClosedEvent) {

if (vc != null) {

remove(vc);

vc = null;

}

if (cc != null) {

remove(cc);

cc = null;

}

}

// 播放結(jié)束時(shí),將播放指針置于文件之首,如果設(shè)定了循環(huán)播放,則再次啟動(dòng)播放器;

if (e instanceof EndOfMediaEvent) {

player.setMediaTime(new Time(0));

if (loop) {

player.start();

}

return;

}

// PrefetchCompletEvent事件發(fā)生后調(diào)用start,正式啟動(dòng)播放

if (e instanceof PrefetchCompleteEvent) {

player.start();

return;

}

// 本事件表示由于播放的資源已經(jīng)確定;此時(shí)要將媒體的圖形conmopnent

// 如果有顯示出來(lái),同時(shí)將播放器player的控制顯示到窗口里;

if (e instanceof RealizeCompleteEvent) {

// 如果媒體中有圖像,將對(duì)應(yīng)圖像component載入窗體;

vc = player.getVisualComponent();

if (vc != null)

tainer.add(vc, BorderLayout.CENTER);

// 將對(duì)應(yīng)控制器component載入窗體;

cc = player.getControlPanelComponent();

cc.setBackground(Color.blue);

if (cc != null)

tainer.add(cc, BorderLayout.SOUTH);

// 有一些特殊媒體在播放時(shí)提供另外的控制手段,將控制器一并加入窗口;

/*

* gc=player.getGainControl(); gcc=gc.getControlComponent();

* if(gcc!=null) tainer.add(gcc,BorderLayout.NORTH);

*/

// 根據(jù)媒體文件中是否有圖像,設(shè)定相應(yīng)的窗口大小

if (vc != null) {

pack();

return;

} else {

setSize(300, 75);

setVisible(true);

return;

}

}

} }

用Java代碼能播放音頻文件嗎?

可以實(shí)現(xiàn),參考如下代碼:

package?com.lolo;

import?java.io.File;

import?java.io.IOException;

import?javax.sound.sampled.AudioSystem;

import?javax.sound.sampled.LineUnavailableException;

import?javax.sound.sampled.UnsupportedAudioFileException;

import?javax.sound.sampled.AudioInputStream;

import?javax.sound.sampled.AudioFormat;

import?javax.sound.sampled.SourceDataLine;

import?javax.sound.sampled.DataLine;

public?class?PlayMusic?{

//????程序退出時(shí)執(zhí)行的代碼

public?void?doShutDownWork()?{

Runtime.getRuntime().addShutdownHook(new?Thread()?{

public?void?run()?{

try?{

//Toolkit.getDefaultToolkit().beep();

Play();

Play();

}?catch?(Exception?ex)?{

}

}

});

}

//播放音頻文件

public?void?Play(){

String?fileurl?=?"file/tada.wav";

try{

AudioInputStream?ais?=?AudioSystem.getAudioInputStream(new?File(fileurl));

AudioFormat?aif?=?ais.getFormat();

SourceDataLine?sdl?=?null;

DataLine.Info?info?=?new?DataLine.Info(SourceDataLine.class,aif);

sdl?=?(SourceDataLine)AudioSystem.getLine(info);

sdl.open(aif);

sdl.start();

//play

int?nByte?=?0;

byte[]?buffer?=?new?byte[128];

while(nByte?!=?-1){

nByte?=?ais.read(buffer,0,128);

if(nByte?=?0){

int?oByte?=?sdl.write(buffer,?0,?nByte);

//System.out.println(oByte);

}

}

sdl.stop();

}catch(UnsupportedAudioFileException?e){

e.printStackTrace();

}?catch?(IOException?e)?{

//?TODO?自動(dòng)產(chǎn)生?catch?區(qū)塊

e.printStackTrace();

}?catch?(LineUnavailableException?e)?{

//?TODO?自動(dòng)產(chǎn)生?catch?區(qū)塊

e.printStackTrace();

}

}

}


網(wǎng)站名稱:java播放音頻的源代碼 java實(shí)現(xiàn)音樂(lè)播放
轉(zhuǎn)載注明:http://weahome.cn/article/dodidip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部