amr java 播放_Java ME中.amr文件的语音或音频播放器

这是我录制和播放声音的工作示例,

public class VoiceRecordMidlet extends MIDlet {

private Display display;

public void startApp() {

display = Display.getDisplay(this);

display.setCurrent(new VoiceRecordForm());

}

public void pauseApp() {

}

public void destroyApp(boolean unconditional) {

notifyDestroyed();

}

}

class VoiceRecordForm extends Form implements CommandListener {

private StringItem message;

private StringItem errormessage;

private final Command record, play;

private Player player;

private byte[] recordedAudioArray = null;

public VoiceRecordForm() {

super("Recording Audio");

message = new StringItem("", "Select Record to start recording.");

this.append(message);

errormessage = new StringItem("", "");

this.append(errormessage);

record = new Command("Record", Command.OK, 0);

this.addCommand(record);

play = new Command("Play", Command.BACK, 0);

this.addCommand(play);

this.setCommandListener(this);

}

public void commandAction(Command comm, Displayable disp) {

if (comm == record) {

Thread t = new Thread() {

public void run() {

try {

player = Manager.createPlayer("capture://audio");

player.realize();

RecordControl rc = (RecordControl) player.getControl("RecordControl");

ByteArrayOutputStream output = new ByteArrayOutputStream();

rc.setRecordStream(output);

rc.startRecord();

player.start();

message.setText("Recording...");

Thread.sleep(5000);

message.setText("Recording Done!");

rc.commit();

recordedAudioArray = output.toByteArray();

player.close();

} catch (Exception e) {

errormessage.setLabel("Error");

errormessage.setText(e.toString());

}

}

};

t.start();

}

else if (comm == play) {

try {

ByteArrayInputStream recordedInputStream = new ByteArrayInputStream(recordedAudioArray);

Player p2 = Manager.createPlayer(recordedInputStream, "audio/basic");

p2.prefetch();

p2.start();

} catch (Exception e) {

errormessage.setLabel("Error");

errormessage.setText(e.toString());

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值