Oops! JMF Quick Start
Purpose:
學習完后能夠學會操作JMF.
JMF是java media framework,能夠控制流媒體
Reference :
http://blog.csdn.net/oscar999/archive/2006/12/11/1438694.aspx
Precondition:
Eclipse 3.3 europa
jmf-2_1_1e-windows-i586.exe
/Files/pixysoft/jmf-2_1_1e-windows-i586.part1.rar
/Files/pixysoft/jmf-2_1_1e-windows-i586.part2.rar
/Files/pixysoft/jmf-2_1_1e-windows-i586.part3.rar
/Files/pixysoft/jmf-2_1_1e-windows-i586.part4.rar
Quick Start:
新建一個java project,項目名為Oops_JMF
在項目里面添加一個lib目錄,并添加以下jar文件,全部可以在jmf-2_1_1e-windows-i586.exe里面找到
在src目錄下面添加以下文件:
SimpleAudioPlayer.java
import javax.media.*;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.MalformedURLException;
public class SimpleAudioPlayer
{
private Player audioPlayer = null;
public SimpleAudioPlayer(URL url) throws IOException, NoPlayerException,
CannotRealizeException
{
audioPlayer = Manager.createRealizedPlayer(url);
}
public SimpleAudioPlayer(File file) throws IOException, NoPlayerException,
CannotRealizeException
{
this(file.toURL());
}
public void play()
{
audioPlayer.start();
}
public void stop()
{
audioPlayer.stop();
audioPlayer.close();
}
}
import javax.media.*;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.MalformedURLException;
public class SimpleAudioPlayer
{
private Player audioPlayer = null;
public SimpleAudioPlayer(URL url) throws IOException, NoPlayerException,
CannotRealizeException
{
audioPlayer = Manager.createRealizedPlayer(url);
}
public SimpleAudioPlayer(File file) throws IOException, NoPlayerException,
CannotRealizeException
{
this(file.toURL());
}
public void play()
{
audioPlayer.start();
}
public void stop()
{
audioPlayer.stop();
audioPlayer.close();
}
}
TestCase.java
import java.io.File;
import java.io.IOException;
import javax.media.CannotRealizeException;
import javax.media.NoPlayerException;
public class TestCase
{
/**
* @param args
*/
public static void main(String[] args)
{
File audioFile = new File("demo.mp3");
try
{
SimpleAudioPlayer player = new SimpleAudioPlayer(audioFile);
System.out.println("music begin");
player.play();
System.out.println("music end");
} catch (NoPlayerException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CannotRealizeException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.IOException;
import javax.media.CannotRealizeException;
import javax.media.NoPlayerException;
public class TestCase
{
/**
* @param args
*/
public static void main(String[] args)
{
File audioFile = new File("demo.mp3");
try
{
SimpleAudioPlayer player = new SimpleAudioPlayer(audioFile);
System.out.println("music begin");
player.play();
System.out.println("music end");
} catch (NoPlayerException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CannotRealizeException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在項目根目錄下面放置一個demo.mp3文件,最后整個項目變成:
右鍵點擊項目,run as java application
設置好運行環境
成功!
發現很有趣。整個application運行完了,但是音樂還在繼續。估計內部開了線程。