中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java的播放器代碼 java播放器下載

如何用java做一個(gè)音樂播放器?

看看其它網(wǎng)友的答案:

創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元精河做網(wǎng)站,已為上家服務(wù),為精河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

首先下載播放mp3的包,比如mp3spi1.9.4.jar。在工程中添加這個(gè)包。

播放器演示代碼如下

package com.test.audio;

import java.io.File;

import java.awt.BorderLayout;

import java.awt.FileDialog;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.Label;

import java.awt.List;

import java.awt.Menu;

import java.awt.MenuBar;

import java.awt.MenuItem;

import java.awt.MenuShortcut;

import java.awt.Panel;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.sound.sampled.AudioFormat;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.DataLine;

import javax.sound.sampled.SourceDataLine;

public class MusicPlayer extends Frame {

/**

*

*/

private static final long serialVersionUID = -2605658046194599045L;

boolean isStop = true;// 控制播放線程

boolean hasStop = true;// 播放線程狀態(tài)

String filepath;// 播放文件目錄

String filename;// 播放文件名稱

AudioInputStream audioInputStream;// 文件流

AudioFormat audioFormat;// 文件格式

SourceDataLine sourceDataLine;// 輸出設(shè)備

List list;// 文件列表

Label labelfilepath;//播放目錄顯示標(biāo)簽

Label labelfilename;//播放文件顯示標(biāo)簽

public MusicPlayer() {

// 設(shè)置窗體屬性

setLayout(new BorderLayout());

setTitle("MP3 Music Player");

setSize(350, 370);

// 建立菜單欄

MenuBar menubar = new MenuBar();

Menu menufile = new Menu("File");

MenuItem menuopen = new MenuItem("Open", new MenuShortcut(KeyEvent.VK_O));

menufile.add(menuopen);

menufile.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

open();

}

});

menubar.add(menufile);

setMenuBar(menubar);

// 文件列表

list = new List(10);

list.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

// 雙擊時(shí)處理

if (e.getClickCount() == 2) {

// 播放選中的文件

filename = list.getSelectedItem();

play();

}

}

});

add(list, "Center");

// 信息顯示

Panel panel = new Panel(new GridLayout(2, 1));

labelfilepath = new Label("Dir:");

labelfilename = new Label("File:");

panel.add(labelfilepath);

panel.add(labelfilename);

add(panel, "North");

// 注冊(cè)窗體關(guān)閉事件

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

setVisible(true);

}

// 打開

private void open() {

FileDialog dialog = new FileDialog(this, "Open", 0);

dialog.setVisible(true);

filepath = dialog.getDirectory();

if (filepath != null) {

labelfilepath.setText("Dir:" + filepath);

// 顯示文件列表

list.removeAll();

File filedir = new File(filepath);

File[] filelist = filedir.listFiles();

for (File file : filelist) {

String filename = file.getName().toLowerCase();

if (filename.endsWith(".mp3") || filename.endsWith(".wav")) {

list.add(filename);

}

}

}

}

// 播放

private void play() {

try {

isStop = true;// 停止播放線程

// 等待播放線程停止

System.out.print("Start:" + filename);

while (!hasStop) {

System.out.print(".");

try {

Thread.sleep(10);

} catch (Exception e) {

}

}

System.out.println("");

File file = new File(filepath + filename);

labelfilename.setText("Playing:" + filename);

// 取得文件輸入流

audioInputStream = AudioSystem.getAudioInputStream(file);

audioFormat = audioInputStream.getFormat();

// 轉(zhuǎn)換mp3文件編碼

if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {

audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,

audioFormat.getSampleRate(), 16, audioFormat

.getChannels(), audioFormat.getChannels() * 2,

audioFormat.getSampleRate(), false);

audioInputStream = AudioSystem.getAudioInputStream(audioFormat,

audioInputStream);

}

// 打開輸出設(shè)備

DataLine.Info dataLineInfo = new DataLine.Info(

SourceDataLine.class, audioFormat,

AudioSystem.NOT_SPECIFIED);

sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo);

sourceDataLine.open(audioFormat);

sourceDataLine.start();

// 創(chuàng)建獨(dú)立線程進(jìn)行播放

isStop = false;

Thread playThread = new Thread(new PlayThread());

playThread.start();

} catch (Exception e) {

e.printStackTrace();

}

}

class PlayThread extends Thread {

byte tempBuffer[] = new byte[320];

public void run() {

try {

int cnt;

hasStop = false;

// 讀取數(shù)據(jù)到緩存數(shù)據(jù)

while ((cnt = audioInputStream.read(tempBuffer, 0,

tempBuffer.length)) != -1) {

if (isStop)

break;

if (cnt 0) {

// 寫入緩存數(shù)據(jù)

sourceDataLine.write(tempBuffer, 0, cnt);

}

}

// Block等待臨時(shí)數(shù)據(jù)被輸出為空

sourceDataLine.drain();

sourceDataLine.close();

hasStop = true;

} catch (Exception e) {

e.printStackTrace();

System.exit(0);

}

}

}

public static void main(String args[]) {

new MusicPlayer();

}

}

求JAVA視頻播放器代碼

import java.awt.BorderLayout;

import java.awt.Component;

import java.awt.FileDialog;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.media.ControllerClosedEvent;

import javax.media.ControllerEvent;

import javax.media.ControllerListener;

import javax.media.EndOfMediaEvent;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.NoPlayerException;

import javax.media.Player;

import javax.media.PrefetchCompleteEvent;

import javax.media.RealizeCompleteEvent;

import javax.media.Time;

import javax.swing.JCheckBoxMenuItem;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

public class JMFMediaPlayer extends JFrame implements ActionListener,

ControllerListener, ItemListener {

// JMF的播放器

Player player;

// 播放器的視頻組件和控制組件

Component vedioComponent;

Component controlComponent;

// 標(biāo)示是否是第一次打開播放器

boolean first = true;

// 標(biāo)示是否需要循環(huán)

boolean loop = false;

// 文件當(dāng)前目錄

String currentDirectory;

// 構(gòu)造方法

public JMFMediaPlayer(String title) {

super(title);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e){

// 用戶點(diǎn)擊窗口系統(tǒng)菜單的關(guān)閉按鈕

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

dispose();

}

public void windowClosed(WindowEvent e){

if (player != null){

// 關(guān)閉JMF播放器對(duì)象

player.close();

}

System.exit(0);

}

});

// 創(chuàng)建播放器的菜單

JMenu fileMenu = new JMenu("文件");

JMenuItem openMemuItem = new JMenuItem("打開");

openMemuItem.addActionListener(this);

fileMenu.add(openMemuItem);

// 添加一個(gè)分割條

fileMenu.addSeparator();

// 創(chuàng)建一個(gè)復(fù)選框菜單項(xiàng)

JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循環(huán)", false);

loopMenuItem.addItemListener(this);

fileMenu.add(loopMenuItem);

fileMenu.addSeparator();

JMenuItem exitMemuItem = new JMenuItem("退出");

exitMemuItem.addActionListener(this);

fileMenu.add(exitMemuItem);

JMenuBar menuBar = new JMenuBar();

menuBar.add(fileMenu);

this.setJMenuBar(menuBar);

this.setSize(200, 200);

try {

// 設(shè)置界面的外觀,為系統(tǒng)外觀

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

SwingUtilities.updateComponentTreeUI(this);

} catch (Exception e) {

e.printStackTrace();

}

this.setVisible(true);

}

/**

* 實(shí)現(xiàn)了ActionListener接口,處理組件的活動(dòng)事件

*/

public void actionPerformed(ActionEvent e) {

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

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

dispose();

return;

}

FileDialog fileDialog = new FileDialog(this, "打開媒體文件", FileDialog.LOAD);

fileDialog.setDirectory(currentDirectory);

fileDialog.setVisible(true);

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

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

return;

}

currentDirectory = fileDialog.getDirectory();

if (player != null){

// 關(guān)閉已經(jīng)存在JMF播放器對(duì)象

player.close();

}

try {

// 創(chuàng)建一個(gè)打開選擇文件的播放器

player = Manager.createPlayer(new MediaLocator("file:"

+ fileDialog.getDirectory() + fileDialog.getFile()));

} catch (java.io.IOException e2) {

System.out.println(e2);

return;

} catch (NoPlayerException e2) {

System.out.println("不能找到播放器.");

return;

}

if (player == null) {

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

return;

}

first = false;

this.setTitle(fileDialog.getFile());

// 播放器的控制事件處理

player.addControllerListener(this);

// 預(yù)讀文件內(nèi)容

player.prefetch();

}

/**

* 實(shí)現(xiàn)ControllerListener接口的方法,處理播放器的控制事件

*/

public void controllerUpdate(ControllerEvent e) {

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

// 如果存在視覺部件,則該部件應(yīng)該拆除(為一致起見,

// 我們對(duì)控制面板部件也執(zhí)行同樣的操作)

if (e instanceof ControllerClosedEvent) {

if (vedioComponent != null) {

this.getContentPane().remove(vedioComponent);

this.vedioComponent = null;

}

if (controlComponent != null) {

this.getContentPane().remove(controlComponent);

this.controlComponent = null;

}

return;

}

// 如果是媒體文件到達(dá)尾部事件

if (e instanceof EndOfMediaEvent) {

if (loop) {

// 如果允許循環(huán),則重新開始播放

player.setMediaTime(new Time(0));

player.start();

}

return;

}

// 如果是播放器預(yù)讀事件

if (e instanceof PrefetchCompleteEvent) {

// 啟動(dòng)播放器

player.start();

return;

}

// 如果是文件打開完全事件,則顯示視頻組件和控制器組件

if (e instanceof RealizeCompleteEvent) {

vedioComponent = player.getVisualComponent();

if (vedioComponent != null){

this.getContentPane().add(vedioComponent);

}

controlComponent = player.getControlPanelComponent();

if (controlComponent != null){

this.getContentPane().add(controlComponent, BorderLayout.SOUTH);

}

this.pack();

}

}

// 處理“循環(huán)”復(fù)選框菜單項(xiàng)的點(diǎn)擊事件

public void itemStateChanged(ItemEvent e) {

loop = !loop;

}

public static void main(String[] args){

new JMFMediaPlayer("JMF媒體播放器");

}

}

試試吧,我這里運(yùn)行正常

求Java編寫的視頻播放器程序

不全~代碼發(fā)不了了~,剩下的是播放器的關(guān)閉以及播放格式的支持與否,不麻煩的自己寫吧

MediaPlayer.java

----------------------------------------------------------------------------

//程序主文件

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.media.*;

import java.io.*;

import java.util.*;//為了導(dǎo)入Vector

//import com.sun.java.swing.plaf.windows.*;

public class MediaPlayer extends JFrame implements ActionListener,Runnable

{

private JMenuBar bar;//菜單條

private JMenu fileMenu,choiceMenu,aboutMenu;

private JMenuItem openItem,openDirItem,closeItem,about,infor;

private JCheckBoxMenuItem onTop;

private boolean top=false,loop;//設(shè)定窗口是否在最前面

private Player player;//Play是個(gè)實(shí)現(xiàn)Controller的接口

private File file,listFile;//利用File類結(jié)合JFileChooser進(jìn)行文件打開操作,后則與list.ini有關(guān)

private Container c;

//private UIManager.LookAndFeelInfo[] look;

private String title,listIniAddress;//標(biāo)題

private FileDialog fd;

private JPanel panel,panelSouth;

private Icon icon; //開始進(jìn)入的時(shí)候要顯示的圖標(biāo),它為抽象類,不能自己創(chuàng)建

private JLabel label,listB;//用來顯示圖標(biāo)

private JList list;//播放清單

private JScrollPane scroll;//使播放清單具有滾動(dòng)功能

private ListValues listWriteFile;//用于向文件中讀取對(duì)象

private ObjectInputStream input;//對(duì)象輸入流

private ObjectOutputStream output;//對(duì)象輸出流

private JPopupMenu popupMenu;//鼠標(biāo)右鍵彈出菜單

private JMenuItem del,delAll,reName; //彈出菜單顯示的菜單項(xiàng),包括刪除,全部刪除和重命名

private Vector fileName,dirName,numList;

private String files,dir;

private int index;//曲目指針

private Properties prop;//獲得系統(tǒng)屬性

private int indexForDel;//標(biāo)志要?jiǎng)h除的列表項(xiàng)目的索引

private ButtonGroup buttonGroup;//控制按鈕組

private JRadioButtonMenuItem[] buttonValues;

private String[] content={"隨機(jī)播放","順序播放","單曲循環(huán)"};

private DialogDemo dialog1;

//private JDialogTest dialog2;//用于顯示播放清單

MediaPlayer()//構(gòu)造函數(shù)

{

super("java音頻播放器1.1版");//窗口標(biāo)題

c=getContentPane();

c.setLayout(new BorderLayout());

//c.setBackground(new Color(40,40,95));

fileName=new Vector(1);

dirName=new Vector(1);

numList=new Vector(1);//構(gòu)造三個(gè)容器用于支持播放清單

//vectorToString=new String[];

//prop=new Properties(System.getProperties());

//listIniAddress=prop.getProperty("user.dir")+"\\list.ini";

//listFile=new File(listIniAddress);//本來這些代碼用來取的系統(tǒng)屬性,后來

//發(fā)現(xiàn)根本就不用這么麻煩

listFile=new File("list.ini");//直接存于此目錄

Thread readToList=new Thread(this);//注意編線程程序的時(shí)候要注意運(yùn)行的時(shí)候含有的變量?jī)|定義或者初始化,

//這就要求線程要等上述所說的情況下再運(yùn)行,否則很容易發(fā)生錯(cuò)誤或則異常

list=new JList();

list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

list.setSelectionForeground(new Color(0,150,150));

list.setVisibleRowCount(10);

list.setFixedCellHeight(12);

list.setFixedCellWidth(250);

list.setFont(new Font("Serif",Font.PLAIN,12));

list.setBackground(new Color(40,40,95));

list.setForeground(new Color(0,128,255));

//list.setOpaque(false);

list.setToolTipText("點(diǎn)右鍵顯示更多功能");//創(chuàng)建播放清單并設(shè)置各個(gè)屬性

list.addMouseListener(new MouseAdapter()

{

public void mouseClicked(MouseEvent e)

{

if (e.getClickCount() == 2) //判斷是否雙擊

{

index = list.locationToIndex(e.getPoint());//將鼠標(biāo)坐標(biāo)轉(zhuǎn)化成list中的選項(xiàng)指針

createPlayer2();

//System.out.println("Double clicked on Item " + index);,此是測(cè)試的時(shí)候加的

}

}

/* public void mousePressed(MouseEvent e)

{

checkMenu(e);//自定義函數(shù),判斷是否是右鍵,來決定是否顯示菜單

}*/

public void mouseReleased(MouseEvent e)

{

checkMenu(e);//與上面的一樣,判斷是否鼠標(biāo)右鍵

}

}

);

//listB=new JLabel(new ImageIcon("qingdan.gif"),SwingConstants.CENTER);

scroll=new JScrollPane(list);//用于存放播放列表

//dialog2=new JDialogTest(MediaPlayer.this,"播放清單",scroll);

//dialog2.setVisible(true);

readToList.start();//啟動(dòng)先程,加載播放列表

try

{

Thread.sleep(10);

}

catch(InterruptedException e)

{

e.printStackTrace();

}

/*look=UIManager.getInstalledLookAndFeels();

try

{

UIManager.setLookAndFeel(look[2].getClassName());

SwingUtilities.updateComponentTreeUI(this);

}

catch(Exception e)

{

e.printStackTrace();

}*///與下面的代碼實(shí)現(xiàn)相同的功能,但執(zhí)行速度要慢,原因:明顯轉(zhuǎn)了個(gè)大彎

/*try

{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

}

catch(Exception e)

{

e.printStackTrace();

} *///此段代碼使執(zhí)行速度大大降低

bar=new JMenuBar();

setJMenuBar(bar);//此兩行創(chuàng)建菜單欄并放到此窗口程序

//bar.setBackground(new Color(48,91,183));

fileMenu=new JMenu("文件");

bar.add(fileMenu);

choiceMenu=new JMenu("控制");

bar.add(choiceMenu);

aboutMenu=new JMenu("幫助");

bar.add(aboutMenu);

openItem =new JMenuItem("打開文件");

openDirItem =new JMenuItem("打開目錄");

closeItem =new JMenuItem("退出程序");

openItem.addActionListener(this);

openDirItem.addActionListener(this);

closeItem.addActionListener(this);

fileMenu.add(openItem);

fileMenu.add(openDirItem);

fileMenu.add(closeItem);

onTop=new JCheckBoxMenuItem("播放時(shí)位于最前面",top);

choiceMenu.add(onTop);

onTop.addItemListener(new ItemListener()

{

public void itemStateChanged(ItemEvent e)

{

if(onTop.isSelected())

top=true;

else top=false;

setAlwaysOnTop(top);

}

}

);

choiceMenu.addSeparator();//加分割符號(hào)

buttonGroup=new ButtonGroup();

buttonValues=new JRadioButtonMenuItem[3];

for(int bt=0;bt3;bt++)

{

buttonValues[bt]=new JRadioButtonMenuItem(content[bt]);

buttonGroup.add(buttonValues[bt]);

choiceMenu.add(buttonValues[bt]);

}

buttonValues[0].setSelected(true);

choiceMenu.addSeparator();

/*loopItem=new JCheckBoxMenuItem("是否循環(huán)");

choiceMenu.add(loopItem);

loopItem.addItemListener(new ItemListener()

{

public void itemStateChanged(ItemEvent e)

{

loop=!loop;

}

}

);*/

infor=new JMenuItem("軟件簡(jiǎn)介");

aboutMenu.add(infor);

infor.addActionListener(this);

about=new JMenuItem("關(guān)于作者");

about.addActionListener(this);

aboutMenu.add(about);

//菜單欄設(shè)置完畢

panel=new JPanel();

panel.setLayout(new BorderLayout());

c.add(panel,BorderLayout.CENTER);

panelSouth=new JPanel();

panelSouth.setLayout(new BorderLayout());

c.add(panelSouth,BorderLayout.SOUTH);

icon=new ImageIcon("icon\\Player.jpg");

label=new JLabel(icon);

panel.add(label);

popupMenu=new JPopupMenu();

del =new JMenuItem("刪除");//鼠標(biāo)右鍵彈出菜單對(duì)象實(shí)例化

popupMenu.add(del);

del.addActionListener(this);

delAll =new JMenuItem("全部刪除");

popupMenu.add(delAll);

delAll.addActionListener(this);

reName =new JMenuItem("重命名");

popupMenu.add(reName);

reName.addActionListener(this);

scroll=new JScrollPane(list);//用于存放播放列表

listB=new JLabel(new ImageIcon("icon\\qingdan.gif"),SwingConstants.CENTER);

panelSouth.add(listB,BorderLayout.NORTH);

panelSouth.add(scroll,BorderLayout.CENTER);

dialog1=new DialogDemo(MediaPlayer.this,"軟件說明");

this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);//設(shè)定窗口關(guān)閉方式

//this.setTitle("d");編譯通過,說明可以再次設(shè)定標(biāo)題

this.setLocation(400,250);//設(shè)定窗口出現(xiàn)的位置

//this.setSize(350,320);//窗口大小

setSize(350,330);

this.setResizable(false);//設(shè)置播放器不能隨便調(diào)大小

this.setVisible(true);//此句不可少,否則窗口會(huì)不顯示

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==openItem)//getSource()判斷發(fā)生時(shí)間的組鍵

{

//System.out.println("d");測(cè)試用

openFile();

//createPlayer();

//setTitle(title);

}

if(e.getSource()==openDirItem)//打開目錄

{

openDir();

}

if(e.getSource()==closeItem)//推出播放器

{

exity_n();

//System.exit(0);

}

if(e.getSource()==about)

{

JOptionPane.showMessageDialog(this,"此簡(jiǎn)易播放器由計(jì)科0302\n"

+"harly\n "+" 完成 ",

"參與者",

JOptionPane.INFORMATION_MESSAGE);

}

if(e.getSource()==del)

{

//index

//delPaintList(index);

fileName.removeElementAt(indexForDel);

dirName.removeElementAt(indexForDel);

numList.removeAllElements();//從三個(gè)容器里面移除此項(xiàng)

Enumeration enumFile=fileName.elements();

while(enumFile.hasMoreElements())

{

numList.addElement((numList.size()+1)+"."+enumFile.nextElement());

//numList添加元素,顯示播放里表中

}

//list.setListData(fileName);

list.setListData(numList);

if(indexindexForDel)

list.setSelectedValue(numList.elementAt(index),true);

else

{

if(index==indexForDel);

else

if(index!=0)

list.setSelectedValue(numList.elementAt(index-1),true);

}

//list.setSelectedIndex(index);

}

if(e.getSource()==delAll)//全部刪除

{

fileName.removeAllElements();

dirName.removeAllElements();

numList.removeAllElements();

list.setListData(numList);

}

if(e.getSource()==reName)//重命名

{

String name;//=JOptionPane.showInputDialog(this,"請(qǐng)輸入新的名字");

try

{

name=reNames();

fileName.setElementAt(name,indexForDel);

numList.setElementAt((indexForDel+1)+"."+name,indexForDel);

}

catch(ReName e2)//自定義的異常

{

}

}

if(e.getSource()==infor)

{

dialog1.setVisible(true);

}

}

public static void main(String[] args)

{

final MediaPlayer mp=new MediaPlayer();

mp.setIconImage(new ImageIcon("icon\\mPlayer.jpg").getImage());//改變默認(rèn)圖標(biāo)

mp.addWindowListener(new WindowAdapter()//注冊(cè)窗口事件

{

public void windowClosing(WindowEvent e)

{

//System.exit(0);

mp.exity_n();

}

}

);

System.out.println("注意:更新文件列表后,請(qǐng)先正常關(guān)閉播放器"

+"\n然后再關(guān)閉此DOS窗口,否則導(dǎo)致播放列表不能保存?。?);

}

private void openFile()//為了界面原因,此代碼重寫,估計(jì)兼容性不好了

{

/*JFileChooser fileChooser=new JFileChooser();//文件選擇器

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);//可以選擇文件不能目錄

int result=fileChooser.showOpenDialog(this);//創(chuàng)建文件打開對(duì)話框,并設(shè)定此程序?yàn)楦复翱诒O(jiān)控*/

/*通過result的值來判斷文件是否打開成功

*JFileChooser類有很多靜態(tài)成員變量

**/

/*if(result==JFileChooser.CANCEL_OPTION)

{

file=null;//file已經(jīng)在類中定義,如果選擇取消,file指向?yàn)榭?/p>

}

else

{

file=fileChooser.getSelectedFile();//獲得文件對(duì)象

title=file.getAbsolutePath();//取得文件的絕對(duì)路徑并且賦給title設(shè)定標(biāo)題

}*/

//if(fd==null)

//{

//String filename="java音頻播放器";

fd = new FileDialog(MediaPlayer.this);

//Filters fl=new Filters();

//fd.setFilenameFilter(fl);

fd.setVisible(true);

if (fd.getFile() != null)

{

title = fd.getDirectory() + fd.getFile();//原因請(qǐng)見同目錄下的FileDialogDemo.java文件

files=fd.getFile();

//dir =fd.getDirectory();

file=new File(title);

createPlayer();

}

//title=filename;

//fd=null;//缺少此句如果第一次打開文件的時(shí)候取消操作的時(shí)候第二次也不能打開文件了

//}

}

private void openDir()

{

JFileChooser fileChooser=new JFileChooser();

fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

int result=fileChooser.showOpenDialog(MediaPlayer.this);

if(result==JFileChooser.CANCEL_OPTION)

return;

file=fileChooser.getSelectedFile();

if(file==null||file.getName().equals(""))

JOptionPane.showMessageDialog(this,"錯(cuò)誤的路徑",

"出錯(cuò)了",JOptionPane.ERROR_MESSAGE);

String[] sFiles=file.list();

for(int i=0;isFiles.length;i++)

{

fileName.addElement(sFiles[i]);

numList.addElement((numList.size()+1)+"."+sFiles[i]);

dirName.addElement(file.getAbsolutePath()+"\\"+sFiles[i]);

}

list.setListData(numList);

/*fd=new FileDialog(MediaPlayer.this);

fd.setVisible(true);

if(fd.getDirectory()!=null)

{

File fileDir=new File(fd.getDirectory());

String[] ss=fileDir.list();

for(int i=0;iss.length;i++)

{

System.out.println(ss[i]);

}

}*/

}

請(qǐng)采納答案,支持我一下。

本文標(biāo)題:java的播放器代碼 java播放器下載
標(biāo)題網(wǎng)址:http://m.rwnh.cn/article40/dosheho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、軟件開發(fā)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷、微信小程序、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
东乡族自治县| 内乡县| 琼结县| 壶关县| 清原| 连州市| 衡阳市| 宜君县| 定安县| 谷城县| 罗城| 公主岭市| 惠东县| 定安县| 陇南市| 海丰县| 滨海县| 霍林郭勒市| 新宾| 中阳县| 盘山县| 庆安县| 庆安县| 通河县| 永康市| 庆元县| 花莲市| 黄梅县| 陈巴尔虎旗| 集安市| 新安县| 安阳市| 英吉沙县| 邛崃市| 个旧市| 治县。| 晴隆县| 安庆市| 灌南县| 新和县| 台安县|