Android录音时指针摆动的实现

来源:互联网 发布:淘宝店铺怎样达到一心 编辑:程序博客网 时间:2024/06/10 05:20

本文中实现录音时候、指针摆动的功能主要是参考SoundRecorder的。主要是其中的VUMeter类,VUMeter是通过Recorder.getMaxAmplitude()的值计算,画出指针的偏移摆动。

下面直接上代码:

VUMeter类:

 

录音类:RecordHelper.java

 

RecordActivity:

        

结果截图:


要点:

1、该程序中使用了用WakeLock请求休眠锁,让其不会休眠。这样能保证录音过程中屏幕常亮。

2、该程序中主要使用VUMeter,自定义该类,VUMeter类是通过mRecorder.getMaxAmplitude()的值计算,画出指针的偏移摆动。

3、RecordHelper类中定义了一个接口OnStateChangedListener ,定义如下

public interface OnStateChangedListener {
         public void onStateChanged(int state);
         public void onError(int error);
     }

并在RecordHelper类中实例化该接口并set,如下:

     OnStateChangedListener mOnStateChangedListener = null;
         public void setOnStateChangedListener(OnStateChangedListener listener) {
               mOnStateChangedListener = listener;
     }

定义在何种情况下使用该接口中的两个方法:

 //实现对自定义接口OnStateChangedListener的两个方法调用的条件
   private void signalStateChanged(int state) {
       if (mOnStateChangedListener != null)
           mOnStateChangedListener.onStateChanged(state);
   }
   
   private void setError(int error) {
       if (mOnStateChangedListener != null)
           mOnStateChangedListener.onError(error);
   }

在RecordActivity类中就可以继承该接口

 class RecordActivity extends Activity implements OnStateChangedListener{}

mRecordHelper = new RecordHelper();
mRecordHelper.setOnStateChangedListener(this);

原创粉丝点击