java 处理音频的问题

hi_simon 2007-08-03 04:35:27
出现的问题:

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());
}
}
...全文
269 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuzong 2007-08-04
  • 打赏
  • 举报
回复
楼主是不是发错区了
试试这个

用java.applet.AudioClip

或者~

InputStream in = new FileInputStream(“.wav”);
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧