import java.applet.*;
import java.net.*;
import java.io.*;
public class TestMp3 {
public static void main(String[] args) {
try {
URL url = new URL("http://www.lwq.512j.com/mp3/lwq4.mp3");
AudioClip audio = Applet.newAudioClip(url);
audio.play();
while(true){
audio.loop();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} }}
怎么才能播放啊?
解决方案 »
- 问一个synchronized 的问题
- java导入类问题
- 求教!!UDP组播问题
- java抽象方法的问题?
- applet 中使用 java communication api 20出现ClassNotFoundException: com.sun.comm.Win32Driver异常
- 究竟是如何加载的
- 我在打开一些网页的时候提示要下载Jave虚拟机,请问那里下载(给个具体的地址)
- 我的applet在client端的computer上不能正常显示,怎么办?
- rs.next()的错误问题
- 关于java.net包中的URLConnection类的一些问题
- 类型不确定的数组应该如何定义啊?
- boolean 所占字节数,如何证明?
http://hi.baidu.com/kingmmxtj/blog/item/70909f30d707b79ea9018eb7.html
http://hi.baidu.com/kingmmxtj/blog/item/515f1052f9087d090cf3e3be.html
java默认只能播放mid wave格式,java读取的时候是按字节流读取,改名也没用文件本质还是mp3,他读不到mid的流就会报错
http://www.codetoad.com/java_mp3_player.asp
建议使用jcom这个工具,去调用com组件。
package jn0807.hh;import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.media.bean.playerbean.MediaPlayer;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class MyMediaPlayer extends JFrame implements ControllerListener{
private MediaPlayer player;
public MyMediaPlayer(){
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu("File");
MenuItem open = new MenuItem("Open File");
menuBar.add(menuFile);
menuFile.add(open);
open.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("media"));
int result = chooser.showOpenDialog(MyMediaPlayer.this);
if(result == JFileChooser.APPROVE_OPTION){
String file = chooser.getSelectedFile().getAbsolutePath();
if(player == null){
player = new MediaPlayer();
player.addControllerListener(MyMediaPlayer.this);
}else{
player.stop();
player.deallocate();
Component c;
c = player.getVisualComponent();
if(c != null)
MyMediaPlayer.this.remove(c);
c = player.getControlPanelComponent();
if(c != null)
MyMediaPlayer.this.remove(c);
}
player.setMediaLocation("file:///"+file);
player.realize();
}
}
});
this.setMenuBar(menuBar);
this.setSize(150, 75);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyMediaPlayer();
} public void controllerUpdate(ControllerEvent e) {
if(e instanceof RealizeCompleteEvent){
Component c;
c = player.getVisualComponent();
if(c != null){
this.add(c, BorderLayout.CENTER);
}
c = player.getControlPanelComponent();
if(c != null){
this.add(c, BorderLayout.SOUTH);
}
player.prefetch();
}else if(e instanceof PrefetchCompleteEvent){
this.pack();
this.setLocationRelativeTo(null);
player.start();
}
}}
简单的代码,用jmf写得,可以支持mp3。
package mypro;/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: </p>
*
* @author 张栋芳
* @version 1.0音频剪辑生产控制类
*
*/import java.io.*;
import javax.media.*;
import java.net.URL;
import java.applet.Applet;
public class MusicControl {
private URL url = null;
private static Player music = null;
private boolean setAudio(File filepath) {
try {
url = filepath.toURL();
}
catch (Exception ex) {
ex.printStackTrace();
}
if (url == null) {
System.out.println("没有mp3");
return false;
}
try {
music = Manager.createPlayer(url);
}
catch (Exception ex) {
ex.printStackTrace();
}
return true;
}
public void play() {
music.start();
}
public void stop() {
music.stop();
}
//退出
public void exitPlay() {
File file = new File("music/exit.mp3");
if (setAudio(file)) {
music.start();
}
else {
System.out.println("exit");
}
}
//开始
public void startplay() {
File file = new File("music/start.mp3");
if (setAudio(file)) {
music.start();
}
}
public void musicplay(){//firstItem
File file=new File("music/刘德华17岁.mp3");
if(setAudio(file)){
music.start();
}
}
public void secondPlay(){//secondITem
File file=new File("music/轻声歌曲.mp3");
if(setAudio(file)){
music.start();
}
}
public void threePlay(){//threeItme
File file=new File("music/老人与海.mp3");
if(setAudio(file)){
music.start();
}
}
public void stopPlay(){
music.stop();
}
}
不怎么想用JavaSound
因为带的东西太大
客户端下载的东西太多
有没有更好的方法呢?