I suspect the problem is the interval you chose: 50 frames @ 8KHz is
6.25 msecs. Your app is not going to be able to handle a callback
every 6.25 msecs. Try something more reasonable like 50 msecs (400
frames) and see if that works.

On Apr 23, 1:56 am, Steven_T <gwb...@126.com> wrote:
> hello everyone,
> I would like to use the new AudioRecord class to record in PCM format.
> Create class and setRecordPositionUpdateListener to it, then start
> recording, I can't get any notification from system forever,why?(I
> didn't get any error when running)
>
> please help me, thanks.
>
> the next is my code.
>
> public class Recorder {
>         private static final int AUDIO_SAMPLE_FREQ = 8000;
>         private static final int AUDIO_BUFFER_SIZE = 200000;
>
>         private AudioRecord recorder;
>
>         public Recorder()
>         {
>                 try
>                 {
>                         // init recorder
>                         recorder = new 
> AudioRecord(MediaRecorder.AudioSource.MIC,
>                                         AUDIO_SAMPLE_FREQ,
>                                         
> AudioFormat.CHANNEL_CONFIGURATION_MONO,
>                                         AudioFormat.ENCODING_PCM_16BIT,
>                                         AUDIO_BUFFER_SIZE);
>                 }
>                 catch (IllegalArgumentException e)
>                 {
>                        e.printStackTrace();
>                 }
>
>                 recorder.setRecordPositionUpdateListener(mNotification);
>                 recorder.setPositionNotificationPeriod(50);
>                 recorder.setNotificationMarkerPosition(AUDIO_SAMPLE_FREQ);
>         }
>
>         public OnRecordPositionUpdateListener mNotification = new
>                 OnRecordPositionUpdateListener(){
>                 public void onMarkerReached(AudioRecord arg0) {
>                         // read PCM buffer here
>                         byte[] audioBuffer = new byte[AUDIO_SAMPLE_FREQ];
>                         arg0.read(audioBuffer, 0, AUDIO_SAMPLE_FREQ);
>                 }
>
>                 public void onPeriodicNotification(AudioRecord arg0) {
>                         // read PCM buffer here
>                         byte[] audioBuffer = new byte[AUDIO_SAMPLE_FREQ];
>                         arg0.read(audioBuffer, 0, AUDIO_SAMPLE_FREQ);
>                 }
>
>         public void StartRecord()
>         {
>                 recorder.startRecording();
>         }
>
>         public void StopRecord()
>         {
>                 recorder.stop();
>         }
>
>         public void ReleaseRecord()
>         {
>                 recorder.release();
>         }
>
> };
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to