Sandeep,
SoundPool leverages MediaPlayer service to decode the compressed audio into
a raw 16-bit PCM stream, which I thought you could refer to its
implementation.
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/jni/soundpool/SoundPool.cpp;h=02731825e08794a17132caed973b6f46486e632a;hb=8ecb36eec61f119f500a805b82438aadb3396a19
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/libmediaplayerservice/MediaPlayerService.cpp;h=8ef0dc6c42c43735d7778874f4b8cfcbc502e79b;hb=8ecb36eec61f119f500a805b82438aadb3396a19#l837

Besides, based on your requirements, I don't think it can be achieved by
calling Opencore decoder node directly. You'll need to to call the file
parser first, then feed the decoder node with parsed frames, and if you want
to support more codecs other than mp3, you'll need to call file recognizers
by yourself, too. That is going to be a lot of work:)

-Freepine

On Fri, Jul 17, 2009 at 1:03 AM, sandy8531 <mathur...@gmail.com> wrote:

>
> Freepine,
>
> I have looked at Soundpool, it does not solve my problem. To further
> clarify, I need to implement the following (pseudo code) api for my
> application. I do not need to play the sound.
>
> public short[] getPcmData(String audioFilename, int
> seekPositionInSeconds, int durationInSeconds);
>
> Where for example:
>   audioFileName = "/sdcard/somefile.mp3" ; // If I can implement this
> for mp3 files only that would be a good start, but if i can also do
> the same for AAC and other formats that would be great
>   seekPositionInSeconds = 15 ; // The offset inside the audio file to
> start decoding
>   durationInSeconds = 5;           //  Number of seconds of audio
> data starting at seekPosition to return the data for
>
> What I need is a way to invoke the opencore decoder code from my
> application and get the raw PCM data back.
>
> -thanks,
> Sandeep
>
> On Jul 16, 7:52 am, Freepine <freep...@gmail.com> wrote:
> > You might want to take a look at SoundPool class and its corresponding
> > implementation in native layer, which could be a good reference if the
> class
> > itself doesn't satisfy your needs:)
> http://developer.android.com/reference/android/media/SoundPool.html
> >
> >
> >
> > On Thu, Jul 16, 2009 at 3:16 PM, sandy8531 <mathur...@gmail.com> wrote:
> >
> > > My application needs to extract a 10 second portion of a audio file in
> > > PCM format and store it.
> >
> > > On other platforms I have been doing this in Java using Jlayer
> > > decoder, but once I ported that to Android, it ran extremely slowly.
> > > It takes almost 50 seconds to decode a 10 second sample !
> >
> > > Since the opencore libraries are already available, I would like to be
> > > to use them as an alternative. I have been looking at it for a couple
> > > of days now. I would like to understand what options are available to
> > > me to be able to do this.
> >
> > > My first approach was to develop a JNI stub and try and make a call
> > > out to the codec in the opencore shipped library, but it appears that
> > > those interfaces are subject to change and there is no guaranty of
> > > backward compatibility in a future release.
> >
> > > The other approach I can think of is to take the opencore source and
> > > compile the codecs into a separate standalone jni library private to
> > > my application, and that way I avoid the backward compatibility
> > > issue.
> >
> > > Before I go too far down any path I would like to run this by the
> > > experts and figure out what is the best approach.
> >
> > > One more question - I saw in the opencore code that the decoding
> > > thread is run at a higher priority. Since my decoder would be running
> > > at normal application priority am I going to see a significant
> > > performance drop off ala Jlayer ?
> >
> > > -thanks,
> > > Sandeep
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"android-framework" group.
To post to this group, send email to android-framework@googlegroups.com
To unsubscribe from this group, send email to 
android-framework+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/android-framework?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to