Time for action – playing background music

Let's open and play an MP3 music file with OpenSL ES:

  1. MP3 files are opened by OpenSL using a POSIX file descriptor pointing to the chosen file. Improve jni/ResourceManager.cpp created in the previous chapters by defining a new structure ResourceDescriptor and appending a new method descriptor():
    ...
    struct ResourceDescriptor {
        int32_t mDescriptor;
        off_t mStart;
        off_t mLength;
    };
    
    class Resource {
    public:
        ...
        status open();
        void close();
        status read(void* pBuffer, size_t pCount);
    
        ResourceDescriptor descriptor();
    
        bool operator==(const Resource& pOther);
    
    private:
        ...
    };
    #endif
  2. Implement jni/ResourceManager.cpp. Of course, makes use of the asset manager API to open the descriptor and fill a ResourceDescriptor ...

Get Android NDK Beginner's Guide - Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.