【问题标题】:how to use Android Media Recorder getMaxAmplitude function如何使用 Android Media Recorder 的 getMaxAmplitude 函数
【发布时间】:2011-06-27 10:26:58
【问题描述】:

我正在尝试运行录音http://developer.android.com/guide/topics/media/index.html,它工作正常,我需要的是在连续录音的同时显示最大振幅。最好的方法是什么。

【问题讨论】:

    标签: android media audio


    【解决方案1】:

    最大幅度给出给定样本的最大幅度,因此我每 250 毫秒采样一次并计算最大幅度

    public void run() {
                int i = 0;
                while(i == 0) {
                    Message msg = mHandler.obtainMessage();
                    Bundle b = new Bundle();
                    try {
                        sleep(250);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    if (mRecorder != null) {
                        amplitude = mRecorder.getMaxAmplitude();
                        b.putLong("currentTime", amplitude);
                        Log.i("AMPLITUDE", new Integer(amplitude).toString());
                    } else {
                        b.putLong("currentTime", 0);
                    }
                    msg.setData(b);
                    mHandler.sendMessage(msg);
                }
            }
    

    我使用消息处理程序通过后台进程线程修改前端

    【讨论】:

      【解决方案2】:

      创建一个一直运行的线程。 在线程中这样做:

          int amp = mrec.getMaxAmplitude();
          if (amp > 0)
            yourcode;
      

      您需要有关线程的更多信息吗?

      【讨论】:

        猜你喜欢
        • 2014-10-18
        • 1970-01-01
        • 2016-01-07
        • 1970-01-01
        • 1970-01-01
        • 2016-02-07
        • 2012-08-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多