Audio 黑莓录音示例代码
有人知道一个很好的存储库来获取黑莓的示例代码吗?具体来说,这些样本将帮助我学习录制音频的机制,甚至可能对其进行采样并对其进行一些实时信号处理Audio 黑莓录音示例代码,audio,blackberry,java-me,mmapi,Audio,Blackberry,Java Me,Mmapi,有人知道一个很好的存储库来获取黑莓的示例代码吗?具体来说,这些样本将帮助我学习录制音频的机制,甚至可能对其进行采样并对其进行一些实时信号处理 我想阅读传入的音频,如果需要,一个样本一个样本地阅读,然后对其进行处理以产生所需的结果,在本例中为可视化工具。虽然不是音频特定的,但这个问题确实有一些很好的“入门”参考 RIM API包含用于处理音频和视频内容的API。 你纠正了BB知识库中的混乱。唯一的办法就是浏览,希望他们不会再更改站点地图。 它是->->-> 录音 基本上,录制音频很简单: 创建具
我想阅读传入的音频,如果需要,一个样本一个样本地阅读,然后对其进行处理以产生所需的结果,在本例中为可视化工具。虽然不是音频特定的,但这个问题确实有一些很好的“入门”参考 RIM API包含用于处理音频和视频内容的API。
你纠正了BB知识库中的混乱。唯一的办法就是浏览,希望他们不会再更改站点地图。
它是->->-> 录音 基本上,录制音频很简单:
- 创建具有正确音频编码的播放器
- 获取记录控制
- 开始录音
- 停止录音
录音样本 声明了具有播放器、RecordControl和资源的线程:
final class VoiceNotesRecorderThread extends Thread{
private Player _player;
private RecordControl _rcontrol;
private ByteArrayOutputStream _output;
private byte _data[];
VoiceNotesRecorderThread() {}
private int getSize(){
return (_output != null ? _output.size() : 0);
}
private byte[] getVoiceNote(){
return _data;
}
}
在线程上启动.run()音频录制:
public void run() {
try {
// Create a Player that captures live audio.
_player = Manager.createPlayer("capture://audio");
_player.realize();
// Get the RecordControl, set the record stream,
_rcontrol = (RecordControl)_player.getControl("RecordControl");
//Create a ByteArrayOutputStream to capture the audio stream.
_output = new ByteArrayOutputStream();
_rcontrol.setRecordStream(_output);
_rcontrol.startRecord();
_player.start();
} catch (final Exception e) {
UiApplication.getUiApplication().invokeAndWait(new Runnable() {
public void run() {
Dialog.inform(e.toString());
}
});
}
}
并且在线程上。停止()录制已停止:
public void stop() {
try {
//Stop recording, capture data from the OutputStream,
//close the OutputStream and player.
_rcontrol.commit();
_data = _output.toByteArray();
_output.close();
_player.close();
} catch (Exception e) {
synchronized (UiApplication.getEventLock()) {
Dialog.inform(e.toString());
}
}
}
音频流的处理和采样
在录制结束时,您将有一个以特定音频格式填充数据的输出流。因此,要处理或采样它,你必须解码这个音频流
谈到即时处理,这将更加复杂。您必须在录制过程中读取输出流,而无需提交记录。因此,有几个问题需要解决:
- 同步访问记录器和采样器的输出流-线程问题
- 读取正确数量的音频数据-深入音频格式解码以了解标记规则
我也花了很多时间试图弄明白这一点。安装BlackBerry组件包(可用)后,您可以在组件包中找到示例代码 在我的例子中,在将组件包安装到Eclipse中后,我在以下位置找到了提取的示例代码: C:\程序 Files\Eclipse\eclipse3.4\plugins\net.rim.eide.componentpack4.5.0\u 4.5.0.16\components\samples 不幸的是,当我导入所有的示例代码时,我遇到了一系列编译错误。为了解决这个问题,我刚刚删除了20%有编译错误的包 我的下一个问题是,启动模拟器总是启动第一个示例代码包(在我的例子中是activetextfieldsdemo),我无法让它只运行我感兴趣的包。解决方法是删除所有按字母顺序排列在我想要的包之前的包 其他问题:
-右键单击Eclipse中的项目并选择Activate for BlackBerry
-选择BlackBerry->构建配置…->编辑并选择您的新项目以使其生成。
-确保将BlackBerry源代码放在Eclipse项目的“src”文件夹下,否则可能会遇到构建问题 为什么使用Java标记?我认为这个问题与Blackberry SDK特别相关,虽然它是Java语言,但不一定适用于任何通用语言概念。虽然有用,但我确实在寻找音频API的具体示例。要找到用于GUI的BlackBerry文档并不太难,但是这种低级的东西更难找到。谢谢你的回答。是的……我自己也在玩BB开发。令人沮丧的是,除了“标准”应用程序,几乎没有任何支持和文档。是的,令人沮丧!似乎很少有人真正喜欢为BB开发,而BB自己也真的很想向你收取每小时75美元的费用,让你与一位只搜索自己支持论坛的代表交谈……哇,这些麻烦让人很沮丧。。。谢谢你的意见++youMy指向BlackBerry组件包的链接现在已失效,因此我已将其更新到更新的网站。因为这个原因,我在这个答案上投了两张反对票,这对我来说似乎有点苛刻!