當前位置:股票大全官網 - 股票投資 - 求java聲音代碼,可以播放mp3。謝謝大家!

求java聲音代碼,可以播放mp3。謝謝大家!

包基本項;

導入Java . util . *;

導入Java . net . *;

導入Java . lang . reflect . method;

導入Java . awt . *;

導入Java . awt . event . *;

導入Java . io . *;

導入javax . swing . *;

導入javax . media . *;

導入javax . media . util . *;

導入javax . media . format . *;

導入javax . media . control . *;

導入javax . media . protocol . *;

導入javax . media . bean . player bean . *;

導入javax . media . RTP . *;

導入javax . media . RTP . event . *;

導入javax . swing . border . *;

公共類MediaPlayer擴展JPanel實現ControllerListener{

//定義接口組件

JMenuBar main menu = new JMenuBar();

JMenu file menu = new JMenu(" file ");

JMenu play menu = new JMenu(" play ");

JMenu help menu = new JMenu(" help ");

j menuitem open menuitem = new j menuitem(" open ");

j menuitem exit unitem = new j menuitem(" exit ");

jcheckbox menuitem loop menuitem = new jcheckbox menuitem(" loop ");

j menuitem about menuitem = new j menuitem(" about ");

JLabel status = new JLabel("歡迎使用視頻播放系統");

JPanel media panel = new JPanel();

玩家玩家;

組件visualcom,controlcom

布爾優先=真,循環=假;

string current directory = " d:/music ";//記錄所選媒體文件的位置

JInternalFrame min

公共媒體播放器(JInternalFrame mi){

min = mi

set layout(new BorderLayout());

set background(color . light gray);

setLocale(new Java . util . locale(" zh "," CN "," "));

MediaPanel.setToolTipText("視頻窗口");

media panel . setverifyinputwhenfocustarget(true);

media panel . set layout(new BorderLayout());

Status.setToolTipText("狀態欄");

MainMenu.setToolTipText("菜單欄");

file menu . add(openMenuItem);

openmenuitem . addactionlistener(new OpenFile(this));

file menu . add(exit menuitem);

exit menuitem . addactionlistener(new action listener(){

public void action performed(action event e){

min . dispose();

player . stop();

返回;

}

});

play menu . add(loop menuitem);

loop menuitem . addactionlistener(new action listener(){

public void action performed(action event e){

loop =!循環;

}

});

help menu . add(about menuitem);

about menuitem . addactionlistener(new action listener(){

public void action performed(action event e){

//顯示“關於”窗口

關於DLG = new About();

dimension DLG size = DLG . getpreferredsize();

dimension frm size = getSize();

point loc = get location();

DLG . set location((frm size . width-DLG size . width)/2+loc . x,

(frm size . height-DLG size . height)/2+loc . y);

DLG . set modal(true);

DLG . pack();

DLG . set visible(true);

}

});

main menu . add(file menu);

main menu . add(play menu);

main menu . add(help menu);

status . set border(border factory . createloweredbevelborder());

status . seto paque(true);

status . set icon(new image icon(base item。media player . class . get resource(" logo . png "));

添加(mainMenu,BorderLayout。北);

add(mediaPanel,BorderLayout。中心);

添加(status,BorderLayout。南);

}

public void controller update(controller event e){

//當調用player.close()方法時,ControllerClosedEvent發生。

//如果有可視化組件,就應該去掉(為了壹致性,

//我們也為控制面板組件做同樣的事情)

if(例如ControllerClosedEvent的實例){

如果(visualcom!= null){

media panel . remove(visual com);

visualcom = null

}

如果(controlcom!= null){

media panel . remove(control com);

controlcom = null

}

返回;

}

//如果回放結束,會發生EndOfMediaEvent,檢查是否是循環回放。

//如果是,調用player start()方法繼續播放。

EndOfMediaEvent的實例){

if(循環){

player.setMediaTime(新時間(0));

player . start();

}

返回;

}

if(e instance of PrefetchCompleteEvent){

player . start();

返回;

}

if(e實例of RealizeCompleteEvent){

visual com = player . getvisual component();

如果(visualcom!=空)

mediaPanel.add(visualcom,BorderLayout。中心);

control com = player . getcontrolpanelcomponent();

如果(controlcom!=空)

mediaPanel.add(controlcom,BorderLayout。南);

}

min . pack();

}

//用於處理“打開”菜單項的類

類OpenFile實現ActionListener{

MediaPlayer mp

公共OpenFile(MediaPlayer mp){

this.mp = mp

}

public void action performed(action event e){

//構造壹個文件來選擇壹個組件實例並設置其屬性。

jfile chooser FD = new jfile chooser();

fd.setSelectedFile(新文件(當前目錄));

set fileselectionmode(jfile chooser。僅限文件);

int result = FD . showopendialog(min);

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

if(result==JFileChooser。取消_選項)

返回;

current directory = FD . getselectedfile()。toString();

如果(玩家!=空)

player . close();

嘗試{

player = manager . create player(new media locator(" file:"+current directory));

}

catch (java.io.IOException e2) {

system . out . println(E2);

返回;

}

catch (NoPlayerException e2) {

System.out.println("找不到玩家。");

返回;

}

if (player == null) {

System.out.println("無法創建播放器。");

返回;

}

first = false

Min.setTitle("播放文件位置"+當前目錄);

//為播放組件註冊偵聽器。

player . addcontrollerlistener(MP);

player .預取();

}

}

}