java 处理音频的问题
出现的问题:
Error: Unable to prefetch com.sun.media.content.audio.midi.Handler$MidiController@b8df17
请问这是怎么回事?
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.media.*;
public class JVideoDemo extends JFrame implements ControllerListener
{
JPanel contentPane;
Component cc=null;
Component vc=null;
BorderLayout borderlayout=new BorderLayout();
Player player=null;
CaptureDeviceInfo infor;
MediaLocator mediaLocator;
public JVideoDemo(String mediaURL)
{
try{
player=Manager.createPlayer(new MediaLocator(mediaURL));
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER,new Boolean(true));
}catch(Exception ex)
{
ex.printStackTrace();
}
if(player==null)
System.out.println( "media is not exists ");
player.addControllerListener(this);
player.prefetch();
}
public void controllerUpdate(ControllerEvent e)
{
if(e instanceof ControllerClosedEvent)
System.exit(0);
if(e instanceof EndOfMediaEvent)
{
player.setMediaTime(new Time(0));
player.start();
return;
}
if(e instanceof PrefetchCompleteEvent)
{
player.start();
return;
}
if(e instanceof RealizeCompleteEvent)
{
vc=player.getVisualComponent();
if(vc!=null)
this.getContentPane().add(vc,BorderLayout.CENTER);
cc=player.getControlPanelComponent();
if(cc!=null)
this.getContentPane().add(cc,BorderLayout.SOUTH);
this.pack();
this.setResizable(false);
this.setVisible(true);
this.setSize(200,100);
this.setLocation(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public static void main(String args[])
{
new JVideoDemo(ClassLoader.getSystemResource( "media/sport.midi ").toString());
}
}
[解决办法]
楼主是不是发错区了
试试这个
用java.applet.AudioClip
或者~
InputStream in = new FileInputStream(“.wav”);
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);