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组件包的链接现在已失效,因此我已将其更新到更新的网站。因为这个原因,我在这个答案上投了两张反对票,这对我来说似乎有点苛刻!