OpenSL ES

Introduction

Open Sound Library for Embedded Systems (OpenSL ES) is a set of audio acceleration standards for embedded systems. It provides objects and APIs for developers to implement high-performance, low-latency audio features. OpenHarmony implements some native APIs based on OpenSL ES 1.0.1 API specifications. The following table lists the related APIs.

Supported APIs

Object External Interface Interface Invocation Supported Description
SLEngineItf CreateAudioPlayer CreateAudioPlayer(SLEngineItf self, SLObjectItf *pPlayer, SLDataSource *pAudioSrc, SLDataSink *pAudioSnk, SLuint32 numInterfaces, const SLInterfaceID *pInterfaceIds, const SLboolean *pInterfaceRequired) Yes Creates an audio player.
SLEngineItf CreateAudioRecorder reateAudioRecorder(SLEngineItf self, SLObjectItf *pRecorder, SLDataSource *pAudioSrc, SLDataSink *pAudioSnk, SLuint32 numInterfaces, const SLInterfaceID *pInterfaceIds, const SLboolean *pInterfaceRequired) Yes Creates an audio recorder.
SLEngineItf CreateAudioOutputMix CreateOutputMix(SLEngineItf self, SLObjectItf *pMix, SLuint32 numInterfaces, const SLInterfaceID *pInterfaceIds, const SLboolean *pInterfaceRequired) Yes Creates an audio output mixer.
SLObjectItf Realize Realize(SLObjectItf self, SLboolean async) Yes Realizes an audio player.
SLObjectItf getState GetState(SLObjectItf self, SLuint32 *pState) Yes Obtains the state.
SLObjectItf getInterface GetInterface(SLObjectItf self, const SLInterfaceID iid, void *pInterface) Yes Obtains the interface.
SLObjectItf Destroy Destroy(SLObjectItf self) Yes Destroys an object.
SLOHBufferQueueItf Enqueue Enqueue(SLOHBufferQueueItf self, const void *pBuffer, SLuint32 size) Yes Adds a buffer to the queue.
SLOHBufferQueueItf clear Clear(SLOHBufferQueueItf self) Yes Releases the buffer queue.
SLOHBufferQueueItf getState GetState(SLOHBufferQueueItf self, SLOHBufferQueueState *pState) Yes Obtains the BufferQueue status.
SLOHBufferQueueItf getBuffer GetBuffer(SLOHBufferQueueItf self, SLuint8 **buffer, SLuint32 *size) Yes Obtains a buffer.
SLOHBufferQueueItf RegisterCallback RegisterCallback(SLOHBufferQueueItf self, SlOHBufferQueueCallback callback, void *pContext) Yes Registers a callback.
SLPlayItf SetPlayState SetPlayState(SLPlayItf self, SLuint32 state) Yes Sets the playback state.
SLPlayItf GetPlayState GetPlayState(SLPlayItf self, SLuint32 *pState) Yes Obtains the playback state.
SLRecordItf SetRecordState SetRecordState(SLRecordItf self, SLuint32 state) Yes Sets the recording state.
SLRecordItf GetRecordState GetRecordState(SLRecordItf self, SLuint32 *pState) Yes Obtains the recording state.
SLVolumeItf SetVolumeLevel SetVolumeLevel(SLVolumeItf self, SLmillibel level) Yes Sets the volume.
SLVolumeItf GetVolumeLevel GetVolumeLevel(SLVolumeItf self, SLmillibel *pLevel) Yes Obtains the volume.
SLVolumeItf GetMaxVolumeLevel GetMaxVolumeLevel(SLVolumeItf self, SLmillibel *pMaxLevel) Yes Obtains the maximum volume.