Hi there,

not sure whether i can help but you stated that you couldn't find
anywhere that "AudioTrack.play()"  (which should probably read
AudioTrack.write()) does not block. Well, it does. And if you do the
following in your thread:

AudioRecord.read(sampels)
AudioTrack.write(samples)

i can imagine that the write will block long enough for the
AudioRecord to overflow as you don't read in the next buffer of
samples early enough. You could try decreasing the number of samples
you read and write so the write will not block as long. No idea
whether that will solve the problem.

hth,
Mario

On 18 Mrz., 00:33, HeHe <cnm...@gmail.com> wrote:
> no, i havent, because my app runs ok on g1 with 1.6 firmware. it just
> runs weird on 1.6 emulator. so i am 90% happy already.
>
> btw, my app does not record and play audio at the same time, but it
> encodes audio with speex, which should take overhead no less than
> playback, i guess.
>
> anyway, i wish you lucks and hope goodle folks will help you solve the
> issue.
>
> On Mar 17, 8:55 am, Gabriel Simões <gsim...@gmail.com> wrote:
>
> > Installing ubuntu 9.1 on my machine.
> > I will try using linux to develop as I think it will be less confusing
> > to develop using NDK.
>
> > Hehe: I was thinking about trying to get an answer from someone from
> > Google tomorrow at irc. Have you ever tried it?
>
> > Won´t anyone who is actually using AudioRecord with success show up
> > and tell us what we are doing wrong? :(
>
> > On 17 mar, 12:53, HeHe <cnm...@gmail.com> wrote:
>
> > > i heard that too. but some google folk seemed discouraging use of the
> > > stuff.
>
> > > On Mar 17, 6:27 am, Gabriel Simões <gsim...@gmail.com> wrote:
>
> > > > Nope,
>
> > > > I´ve paid attention to see if GC was being called, but nothing shows
> > > > up on LogCat.
> > > > Well, I´ve found some posts on the internet about using AudioRecord´s
> > > > native implementation. Isn´t it supported anymore?
>
> > > > I still can´t believe we are spending so much time on something that
> > > > should be "plug and play". It´s almost becoming "plug and pray"!
>
> > > > On 17 mar, 02:41, HeHe <cnm...@gmail.com> wrote:
>
> > > > > if you find any native audio interfaces in NDK, please share it with
> > > > > me first :)
>
> > > > > for your issue, did you check GC? that is, around the time when you
> > > > > see buffer overflow msgs, does GC happen too?
>
> > > > > On Mar 16, 7:33 pm, Gabriel Simões <gsim...@gmail.com> wrote:
>
> > > > > > *** Idea ...
> > > > > > Using the NDK native audio interfaces should solve this problem?
>
> > > > > > On 16 mar, 22:26, Gabriel Simões <gsim...@gmail.com> wrote:
>
> > > > > > > News, but no good news...
>
> > > > > > > I´ve tried the source code above on another machine running the 
> > > > > > > sdk
> > > > > > > 2.1, an AVD with default parameters plus audio record and audio
> > > > > > > playback capabilities, another operational system (linux), etc.
> > > > > > > The results? the same we had before .... audio delay (long delay),
> > > > > > > chopping, distortion and a metalic voice.
>
> > > > > > > I can not believe nobody here in this forum hasn´t been able to
> > > > > > > develop any app that can record from the microfone using 
> > > > > > > AudioRecord.
> > > > > > > Also, anyone here hasn´t even made a loop back from microfone to 
> > > > > > > line
> > > > > > > out to check the audio being recorded?
>
> > > > > > > Please, c´mon guys ... this is not a commercial secret, this won´t
> > > > > > > increase competition, and I really can´t see any other reasons 
> > > > > > > not to
> > > > > > > see some posts from developers who work with audio or other signal
> > > > > > > processing using Android.
>
> > > > > > > Please, show us a way to go because I´ve tried almost all the
> > > > > > > possibilities here (the only one left is to try using a real 
> > > > > > > device)
> > > > > > > and revising the code I can´t find what else it could be.
>
> > > > > > > *Obs: once again, a program with a thread only to read from
> > > > > > > AudioRecord and play with AudioTrack is giving warnings about 
> > > > > > > buffer
> > > > > > > overflows (Audio Record). There´s no processing going on and 
> > > > > > > since I
> > > > > > > haven´t found anything related to "AudioTrack.play() blocks until 
> > > > > > > the
> > > > > > > audio stream is played", based on it´s actuall behavior in my app 
> > > > > > > I can
> > > > > > > ´t see how this class could be useful
> > > > > > > for online audio processing applications.
>
> > > > > > > Thank you,
> > > > > > > Gabriel
>
> > > > > > > On 15 mar, 20:53, Gabriel Simões <gsim...@gmail.com> wrote:
>
> > > > > > > > Well, just to try I´ve downloaded the SDK 1.6 (v. 4), created a 
> > > > > > > > new
> > > > > > > > AVD based on that and then tried the source code from the first 
> > > > > > > > post
> > > > > > > > in two different situations:
>
> > > > > > > > - App compiled using SDK 1.6 on an AVD running 1.6
> > > > > > > > - App compiled using SDK 1.6 on an AVD running 2.1
>
> > > > > > > > Had exactly the same results as "compiling" and running on 2.1: 
> > > > > > > > audio
> > > > > > > > chopping, distortion and artfacts even if I solo the microfone 
> > > > > > > > input
> > > > > > > > level (using a 1 second buffer, sometimes the audio decays in a 
> > > > > > > > lot
> > > > > > > > longer) and AudioRecord buffer overflow messages even if all I 
> > > > > > > > do in
> > > > > > > > the thread is to read from AudioRecord and to play using 
> > > > > > > > AudioTrack.
>
> > > > > > > > Tomorrow I will try to test my code using another computer and 
> > > > > > > > even
> > > > > > > > on
> > > > > > > > a real device. In the mean time, any other ideas?
>
> > > > > > > > Gabriel
>
> > > > > > > > On 15 mar, 01:31, HeHe <cnm...@gmail.com> wrote:
>
> > > > > > > > > no chopping, likely because my computer (Core2 E8400) is 
> > > > > > > > > lightening
> > > > > > > > > fast.
>
> > > > > > > > > my AudioRecord.read() returns a value equal to my buffer 
> > > > > > > > > size, too.
>
> > > > > > > > > however, it returns recorded samples in a speed "faster than 
> > > > > > > > > 8khz",
> > > > > > > > > which makes later playback sound like my voice is slowed.
>
> > > > > > > > > again, the same code works correctly on 1.5 emulator.
>
> > > > > > > > > so, seems your problem is not the same as mine :(
>
> > > > > > > > > On Mar 14, 6:53 pm, Gabriel Simões <gsim...@gmail.com> wrote:
>
> > > > > > > > > > Audio chopping also?
> > > > > > > > > > Could you please test the code above?
>
> > > > > > > > > > I´ve checked and AudioRecord.read() returns a value equal 
> > > > > > > > > > to my buffer
> > > > > > > > > > size. Based on that I understand that AudioRecord.read() 
> > > > > > > > > > blocks the
> > > > > > > > > > execution, waits for the buffer to get a number of samples 
> > > > > > > > > > at least
> > > > > > > > > > equal to the buffer size and then it returns the audio 
> > > > > > > > > > stream (older
> > > > > > > > > > "buffer size" number of samples in the AudioRecord internal 
> > > > > > > > > > buffer).
>
> > > > > > > > > > On 14 mar, 22:34, HeHe <cnm...@gmail.com> wrote:
>
> > > > > > > > > > > seems i am experiencing similar issue as you 
> > > > > > > > > > > r.http://groups.google.com/group/android-developers/browse_thread/threa...
>
> > > > > > > > > > > without any single line of code modification to my app, 
> > > > > > > > > > > the count of
> > > > > > > > > > > frames recorded by app running on sdk 1.6 emulator is 
> > > > > > > > > > > significantly
> > > > > > > > > > > more than that recorded by the same app running on sdk 
> > > > > > > > > > > 1.5 emulator.
>
> > > > > > > > > > > however, the same app runs equally well on both 1.5/1.6 
> > > > > > > > > > > emulators.
>
> > > > > > > > > > > it is weird.....
>
> > > > > > > > > > > On Mar 14, 3:00 pm, Gabriel Simões <gsim...@gmail.com> 
> > > > > > > > > > > wrote:
>
> > > > > > > > > > > > Hello,
>
> > > > > > > > > > > > Since my day 1 I´ve been facing problems with Android 
> > > > > > > > > > > > AudioRecord API.
> > > > > > > > > > > > After a lot of research and a lot more trial and error 
> > > > > > > > > > > > I´ve found my
> > > > > > > > > > > > way into the code and was able to write an asynctask 
> > > > > > > > > > > > for audio streams
> > > > > > > > > > > > recording which encapsules most of the audiorecord and 
> > > > > > > > > > > > asynctask
> > > > > > > > > > > > features as a lib, so the developers doesn´t need to 
> > > > > > > > > > > > worry about
> > > > > > > > > > > > finding the best audio parameters, work on stop and 
> > > > > > > > > > > > release, etc.
> > > > > > > > > > > > So far, everything was right.
> > > > > > > > > > > > Yesterday I started trying to process the audio I got 
> > > > > > > > > > > > from the
> > > > > > > > > > > > microfone input and my code was reacting bad. I 
> > > > > > > > > > > > revisited it many
> > > > > > > > > > > > times and decided then to check the audio I was getting 
> > > > > > > > > > > > from the mic.
> > > > > > > > > > > > Created in instance of AudioTrack and tried to play it 
> > > > > > > > > > > > back. The sound
> > > > > > > > > > > > was horrible, with lots of chopping, lots of distortion 
> > > > > > > > > > > > and giving me
> > > > > > > > > > > > even the sensation of low samplerate playback (a single 
> > > > > > > > > > > > word spoken
> > > > > > > > > > > > sometimes lasted for seconds on the earphone).
> > > > > > > > > > > > To check if it was actually my code I went for the 
> > > > > > > > > > > > internet and found
> > > > > > > > > > > > the code above. Tried it and got the same results. The 
> > > > > > > > > > > > only thing that
> > > > > > > > > > > > comes to my mind actually is that, it doesn´t matter 
> > > > > > > > > > > > what I do and the
> > > > > > > > > > > > configuration I try, I always get the buffer overflow 
> > > > > > > > > > > > message. Even if
> > > > > > > > > > > > I don´t actually do anything but read from AudioRecord 
> > > > > > > > > > > > and write to
> > > > > > > > > > > > AudioTrack (example above, and not in debug mode). If 
> > > > > > > > > > > > the emulator can
> > > > > > > > > > > > ´t do it fast enought .... then I´m completly lost here.
>
> > > > > > > > > > > > Based on the output of my algorithm I think the audio 
> > > > > > > > > > > > streams I´m
> > > > > > > > > > > > reading are not right.
>
> > > > > > > > > > > > Have anyone faced this? does anyone know how to solve 
> > > > > > > > > > > > it? Could anyone
> > > > > > > > > > > > try the code (copy and paste) and check if it´s 
> > > > > > > > > > > > actually my computer
> > > > > > > > > > > > or my emulator?
>
> > > > > > > > > > > > package com.example.test;
>
> > > > > > > > > > > > import android.app.Activity;
> > > > > > > > > > > > import android.content.Context;
> > > > > > > > > > > > import android.media.AudioFormat;
> > > > > > > > > > > > import android.media.AudioManager;
> > > > > > > > > > > > import android.media.AudioRecord;
> > > > > > > > > > > > import android.media.AudioTrack;
> > > > > > > > > > > > import android.media.MediaRecorder;
> > > > > > > > > > > > import android.os.Bundle;
>
> > > > > > > > > > > > public class test extends Activity {
>
> > > > > > > > > > > >     boolean isRecording; //currently not used
> > > > > > > > > > > >     AudioManager am;
>
> > > > > > > > > > > >    /** Called when the activity is first created. */
> > > > > > > > > > > >   �...@override
> > > > > > > > > > > >    public void onCreate(Bundle savedInstanceState) {
> > > > > > > > > > > >        super.onCreate(savedInstanceState);
> > > > > > > > > > > >        setContentView(R.layout.main);
> > > > > > > > > > > >        am = (AudioManager) 
> > > > > > > > > > > > getSystemService(Context.AUDIO_SERVICE);
> > > > > > > > > > > >        Record record = new Record();
>
> ...
>
> Erfahren Sie mehr »

-- 
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