?? audioplayer.java
字號:
package com.j2medev.chapter5;
import java.io.*;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.media.control.*;
import javax.microedition.media.*;
public class AudioPlayer implements Runnable {
private AudioMIDlet midlet = null;
private Player recPlayer = null;
private RecordControl record = null;
private ByteArrayOutputStream bos = new ByteArrayOutputStream();
private Alert alert = new Alert("info");
public AudioPlayer(AudioMIDlet _midlet) {
this.midlet = _midlet;
alert.setType(AlertType.WARNING);
}
private void createRecordPlayer(){
try{
recPlayer = Manager.createPlayer("capture://audio");
recPlayer.realize();
recPlayer.prefetch();
}catch(IOException ex){
showAlert(ex.getMessage());
}catch(MediaException ex){
showAlert(ex.getMessage());
}
}
private void showAlert(String message){
alert.setString(message);
alert.setTimeout(2000);
midlet.setCurrent(alert);
}
public void startRecord(){
new Thread(this).start();
}
public void stopRecord(){
try {
record.stopRecord();
record.commit();
recPlayer.close();
recPlayer = null;
} catch (IOException ex) {
showAlert(ex.getMessage());
}
}
public void playRecord(){
byte[] data = bos.toByteArray();
try {
bos.close();
} catch (IOException ex) {
showAlert(ex.getMessage());
}
InputStream is = new ByteArrayInputStream(data);
try{
Player p = Manager.createPlayer(is,record.getContentType());
p.start();
}catch(IOException ex){
showAlert(ex.getMessage());
}catch(MediaException ex){
showAlert(ex.getMessage());
}
}
public void run() {
if(recPlayer == null)
createRecordPlayer();
try {
record = (RecordControl)recPlayer.getControl("RecordControl");
record.setRecordSizeLimit(204800);
record.setRecordStream(bos);
recPlayer.start();
record.startRecord();
} catch (MediaException ex) {
showAlert(ex.getMessage());
}
}
public void release(){
//release resource if necessory
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -