📄 audioplayer.java
字号:
package com.j2medev.chapter7;
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{
//创建Player
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{
//getContentType()可以得到媒体类型
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 {
//创建RecordControl
record = (RecordControl)recPlayer.getControl("RecordControl");
record.setRecordSizeLimit(204800);
//设置录音记录存储的位置
record.setRecordStream(bos);
recPlayer.start();
//开始录音
record.startRecord();
} catch (MediaException ex) {
showAlert(ex.getMessage());
}
}
public void release(){
//释放资源
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -