比如用Windows Media Player: Runtime.getRuntime().exec("mplayer.exe music.mp3"); 或者用 Runtime.getRuntime().exec("start music.mp3");说明: 这并非是在Java中播放mp3。
要在Java中播放mp3, 要用到JMF 中的包。首先要下载 JMF。 下面是《Java 2 大学教程》上的一个示例, 我不经修改就贴到这了,看一吧。 import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.media.*; //这个包就是来自JMF public class MediaPlayerDemo extends JFrame { private Player player; private File file; public MediaPlayerDemo() { super( "Demonstrating the Java Media Player" ); JButton openFile = new JButton( "Open file to play" ); openFile.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { openFile(); createPlayer(); } } ); getContentPane().add( openFile, BorderLayout.NORTH );
setSize( 300, 300 ); show(); } private void openFile() { JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode( JFileChooser.FILES_ONLY ); int result = fileChooser.showOpenDialog( this ); // user clicked Cancel button on dialog if ( result == JFileChooser.CANCEL_OPTION ) file = null; else file = fileChooser.getSelectedFile(); } private void createPlayer() { if ( file == null ) return; removePreviousPlayer(); try { // create a new player and add listener player = Manager.createPlayer( file.toURL() ); player.addControllerListener( new EventHandler() ); player.start(); // start player } catch ( Exception e ){ JOptionPane.showMessageDialog( this, "Invalid file or location", "Error loading file", JOptionPane.ERROR_MESSAGE ); } } private void removePreviousPlayer() { if ( player == null ) return; player.close(); Component visual = player.getVisualComponent(); Component control = player.getControlPanelComponent(); Container c = getContentPane();
if ( visual != null ) c.remove( visual ); if ( control != null ) c.remove( control ); } public static void main(String args[]) { MediaPlayerDemo app = new MediaPlayerDemo(); app.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit(0); } } ); } // inner class to handler events from media player private class EventHandler implements ControllerListener { public void controllerUpdate( ControllerEvent e ) { if ( e instanceof RealizeCompleteEvent ) { Container c = getContentPane();
// load Visual and Control components if they exist Component visualComponent = player.getVisualComponent(); if ( visualComponent != null ) c.add( visualComponent, BorderLayout.CENTER ); Component controlsComponent = player.getControlPanelComponent(); if ( controlsComponent != null ) c.add( controlsComponent, BorderLayout.SOUTH ); c.doLayout(); } } } }
Runtime.getRuntime().exec("mplayer.exe music.mp3");
或者用
Runtime.getRuntime().exec("start music.mp3");说明:
这并非是在Java中播放mp3。
下面是《Java 2 大学教程》上的一个示例, 我不经修改就贴到这了,看一吧。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.media.*; //这个包就是来自JMF public class MediaPlayerDemo extends JFrame {
private Player player;
private File file; public MediaPlayerDemo()
{
super( "Demonstrating the Java Media Player" ); JButton openFile = new JButton( "Open file to play" );
openFile.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e )
{
openFile();
createPlayer();
}
}
);
getContentPane().add( openFile, BorderLayout.NORTH );
setSize( 300, 300 );
show();
} private void openFile()
{
JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(
JFileChooser.FILES_ONLY );
int result = fileChooser.showOpenDialog( this ); // user clicked Cancel button on dialog
if ( result == JFileChooser.CANCEL_OPTION )
file = null;
else
file = fileChooser.getSelectedFile();
} private void createPlayer()
{
if ( file == null )
return; removePreviousPlayer(); try {
// create a new player and add listener
player = Manager.createPlayer( file.toURL() );
player.addControllerListener( new EventHandler() );
player.start(); // start player
}
catch ( Exception e ){
JOptionPane.showMessageDialog( this,
"Invalid file or location", "Error loading file",
JOptionPane.ERROR_MESSAGE );
}
} private void removePreviousPlayer()
{
if ( player == null )
return; player.close(); Component visual = player.getVisualComponent();
Component control = player.getControlPanelComponent(); Container c = getContentPane();
if ( visual != null )
c.remove( visual ); if ( control != null )
c.remove( control );
} public static void main(String args[])
{
MediaPlayerDemo app = new MediaPlayerDemo(); app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit(0);
}
}
);
} // inner class to handler events from media player
private class EventHandler implements ControllerListener {
public void controllerUpdate( ControllerEvent e ) {
if ( e instanceof RealizeCompleteEvent ) {
Container c = getContentPane();
// load Visual and Control components if they exist
Component visualComponent =
player.getVisualComponent(); if ( visualComponent != null )
c.add( visualComponent, BorderLayout.CENTER ); Component controlsComponent =
player.getControlPanelComponent(); if ( controlsComponent != null )
c.add( controlsComponent, BorderLayout.SOUTH ); c.doLayout();
}
}
}
}
本來多少分對許多人無所謂?可你起碼應尊重其它人的勞動﹐吱會一聲也好啊﹗建議版主對常這么于的人刪ID,現在回JAVA版里問的有水平的貼子越來越少﹐回答有水平的貼子也越來越少﹐跟這些人大有關系!
至少應有一個黑名單的功能﹐對這些人我可以加入黑名單﹐以后不再回它們的貼