estou com um exemplo de um player q peguei do livro do deitel…esse exemplo usa o botão abrir para poder, claro, executar…
será q tem como eu executar o mp3 sem precisar clicar em abrir? apenas apertando a tecla enter? (meu programa seria para um deficiente visual…) o que devo substituir?
código
[code]import java.awt.;
import java.awt.event.;
import java.io.;
import java.net.;
import javax.swing.;
import javax.media.;
public class soaudio extends JFrame
{
private Player player;
private Component visualMedia;
private Component mediaControl;
private Container container;
private File mediaFile;
private URL fileURL;
private JPanel p1, p2, p3;
public soaudio()
{
super( "Player" );
container = getContentPane();
p3 = new JPanel();
container.add( p3, BorderLayout.CENTER );
JButton openFile = new JButton( "Abrir Arquivo" );
p3.add( openFile );
openFile.addActionListener(new ActionListener()
{
public void actionPerformed( ActionEvent event )
{
mediaFile = getFile();
if ( mediaFile != null )
{
try
{
fileURL = mediaFile.toURL();
}
catch ( MalformedURLException badURL )
{
badURL.printStackTrace();
showErrorMessage( "Bad URL" );
}
makePlayer( fileURL.toString() );
}
}
}
);
Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE );
}
public void showErrorMessage( String error )
{
JOptionPane.showMessageDialog( this, error, "Error",
JOptionPane.ERROR_MESSAGE );
}
public File getFile()
{
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(
JFileChooser.FILES_ONLY );
int result = fileChooser.showOpenDialog( this );
if ( result == JFileChooser.CANCEL_OPTION )
return null;
else
return fileChooser.getSelectedFile();
}
public void makePlayer( String mediaLocation )
{
if ( player != null )
removePlayerComponents();
MediaLocator mediaLocator = new MediaLocator( mediaLocation );
if ( mediaLocator == null )
{
showErrorMessage( "Error opening file" );
return;
}
try
{
player = Manager.createPlayer( mediaLocator );
player.addControllerListener(new PlayerEventHandler() );
player.realize();
}
catch ( NoPlayerException noPlayerException )
{
noPlayerException.printStackTrace();
}
catch ( IOException ioException )
{
ioException.printStackTrace();
}
}
public void removePlayerComponents()
{
if ( visualMedia != null )
container.remove( visualMedia );
if ( mediaControl != null )
container.remove( mediaControl );
player.close();
}
public void getMediaComponents()
{
visualMedia = player.getVisualComponent();
if ( visualMedia != null )
container.add( visualMedia, BorderLayout.CENTER );
mediaControl = player.getControlPanelComponent();
if ( mediaControl != null )
container.add( mediaControl, BorderLayout.SOUTH );
}
private class PlayerEventHandler extends ControllerAdapter
{
public void realizeComplete(RealizeCompleteEvent realizeDoneEvent )
{
player.prefetch();
}
public void prefetchComplete(PrefetchCompleteEvent prefetchDoneEvent )
{
getMediaComponents();
validate();
player.start();
}
public void endOfMedia( EndOfMediaEvent mediaEndEvent )
{
player.setMediaTime( new Time( 0 ) );
player.stop();
}
}
public static void main( String args[] )
{
soaudio testPlayer = new soaudio();
testPlayer.setSize( 300, 400 );
testPlayer.setLocation( 300, 300 );
testPlayer.setDefaultCloseOperation( EXIT_ON_CLOSE );
testPlayer.setVisible( true );
}
}[/code]