Hi folks,

I ma trying to write a media player for Android 2.2. I am using
NDK_rb6 to build my JNI library written i C/C++ (under Ubuntu
11.04)... Actually, I faced a lot of problems of linking and
dependencies, I resolved a lot of the and I am stuck with this one:

~/dev/workspace/MyApp/jni/android-out.cpp:95: undefined reference to
`android::AudioTrack::set(int, unsigned int, int, int, int, unsigned
int, void (*)(int, void*, void*), void*, int,
android::sp<android::IMemory> const&, bool, int)'
collect2: ld returned 1 exit status

However, I found its definition in $(ANDROID_SRC)/frameworks/base/
media/libmedia/AudioTrack.cpp:

status_t AudioTrack::set(
        int streamType,
        uint32_t sampleRate,
        int format,
        int channels,
        int frameCount,
        uint32_t flags,
        callback_t cbf,
        void* user,
        int notificationFrames,
        const sp<IMemory>& sharedBuffer,
        bool threadCanCallJava,
        int sessionId)
{
...
}

and in the header that I included (media/audioTrack.h):

   /* Initialize an uninitialized AudioTrack.
     * Returned status (from utils/Errors.h) can be:
     *  - NO_ERROR: successful intialization
     *  - INVALID_OPERATION: AudioTrack is already intitialized
     *  - BAD_VALUE: invalid parameter (channels, format,
sampleRate...)
     *  - NO_INIT: audio server or audio hardware not initialized
     * */
            status_t    set(int streamType      =-1,
                            uint32_t sampleRate = 0,
                            int format          = 0,
                            int channels        = 0,
                            int frameCount      = 0,
                            uint32_t flags      = 0,
                            callback_t cbf      = 0,
                            void* user          = 0,
                            int notificationFrames = 0,
                            const sp<IMemory>& sharedBuffer = 0,
                            bool threadCanCallJava = false,
                            int sessionId = 0);


and I am using it this way:

status = track->set(AudioSystem::MUSIC,
                        audec->samplerate,
                        AudioSystem::PCM_16_BIT,
                        (audec->channels == 1) ?
AudioSystem::CHANNEL_OUT_MONO : AudioSystem::CHANNEL_OUT_STEREO,
                        0,       // frameCount
                        0,       // flags
                        audioCallback,
                        audec,    // user when callback
                        0,       // notificationFrames
                        0,       // shared buffer
                        0);



So I am not able to see where am I wrong?


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