为了使移动装置能够访问这些不同格式的媒体数据,必须为其设计一个规范化的、强大的和可扩充的应用接口。J2ME中就提供了一套为规范的播放和录制音频或视频接口,即Mobile Media API (MMAPI)。
二、MMAPI体系结构
一般情况下,可以将媒体处理过程分解为两个过程:
◆处理媒体数据的传输协议的过程。
◆处理媒体数据内容的过程。
try {
// Create a Player that captures live audio.
Player p = Manager.createPlayer("capture://audio");
p.realize();
// Get the RecordControl, set the record stream,
// start the Player and record for 5 seconds.
RecordControl rc = (RecordControl)p.getControl("RecordControl");
ByteArrayOutputStream output = new ByteArrayOutputStream();
rc.setRecordStream(output);
rc.startRecord();
p.start();
Thread.currentThread().sleep(5000);
rc.commit();
p.close();
} catch (IOException ioe) {
} catch (MediaException me) {
} catch (InterruptedException ie) { }
录音
相关文章:
你能提供一个完整的J2ME录音机代码给我么,我现在正在做这个,我遇到了阻塞的问题,我是一个初学者,不知道如何解决
你可以给我发到邮箱里来
yanfeng8054197@163.com
x谢谢你了.老师
阻塞的问题,是不能录音吗?这个已经是个完整的录音代码了,放在某个事件里调用就可以了。
这个录音的代码是比较完整,但是我放在了CommandAction里调用也出现了死锁,我也不知道应该如何解决,我想问问您有完整的J2ME录音机程序么?我想借来参考一下,
您就发到我邮箱里就行了yanfeng8054197@163.com
谢谢您了,老师
没有独立的代码,都在项目里面,不好抽取。
死锁可能是连续调用的原因,控制下按键或者调用应该就可以了。
我想问问老师,stopRecord()和commit()的主要区别!
还有,我想在录音的时候暂停一下录音,然后继续,应该如何实现。
stopRecord() 只是停止当前的录制,可以继续,数据不一定立即写入Stream。
commit() 是调用stopRecord()后,数据写入Stream。