harmony 鸿蒙OpenSL ES

  • 2025-06-16
  • 浏览 (5)

OpenSL ES

说明: OpenHarmony上的OpenSL ES接口,是早期SDK8版本开始提供,用于支持应用Native层音频开发的接口。但随着版本演进,接口定义的可扩展性不足,不再能满足音频系统的能力拓展,因此当前已不再推荐应用开发者继续使用此接口进行音频功能开发, 请开发者从OpenSL ES切换到OHAudio

简介

OpenSL ES(Open Sound Library for Embedded System)即嵌入式音频加速标准。为开发者提供了标准化、高性能以及低响应时间的音频功能开发的对象和接口。相对于开源免费的OpenSL ES,OpenHarmony基于OpenSL ES 1.0.1 API规范实现了部分Native API,相关接口开放情况如表支持的API所示。

引入OpenSL ES能力

如果开发者需要使用OpenSL ES相关功能,首先请添加头文件:

#include <SLES/OpenSLES.h>
#include <SLES/OpenSLES_OpenHarmony.h>
#include <SLES/OpenSLES_Platform.h>

其次在CMakeLists.txt中添加以下链接动态库:

libOpenSLES.so

支持的API

对象 对外接口 接口调用详情 是否支持 说明
SLEngineItf CreateAudioPlayer CreateAudioPlayer(SLEngineItf self, SLObjectItf *pPlayer, SLDataSource *pAudioSrc, SLDataSink *pAudioSnk, SLuint32 numInterfaces, const SLInterfaceID *pInterfaceIds, const SLboolean *pInterfaceRequired) 创建音频播放机。
SLEngineItf CreateAudioRecorder reateAudioRecorder(SLEngineItf self, SLObjectItf *pRecorder, SLDataSource *pAudioSrc, SLDataSink *pAudioSnk, SLuint32 numInterfaces, const SLInterfaceID *pInterfaceIds, const SLboolean *pInterfaceRequired) 创建音频录制器。
SLEngineItf CreateAudioOutputMix CreateOutputMix(SLEngineItf self, SLObjectItf *pMix, SLuint32 numInterfaces, const SLInterfaceID *pInterfaceIds, const SLboolean *pInterfaceRequired) 创建混音器。
SLObjectItf Realize Realize(SLObjectItf self, SLboolean async) 创建音频播放机。
SLObjectItf getState GetState(SLObjectItf self, SLuint32 *pState) 获取状态。
SLObjectItf getInterface GetInterface(SLObjectItf self, const SLInterfaceID iid, void *pInterface) 获取接口。
SLObjectItf Destroy Destroy(SLObjectItf self) 销毁对象。
SLOHBufferQueueItf Enqueue Enqueue(SLOHBufferQueueItf self, const void *pBuffer, SLuint32 size) 将buffer加入实际队列中。
SLOHBufferQueueItf clear Clear(SLOHBufferQueueItf self) 释放buffer队列
SLOHBufferQueueItf getState GetState(SLOHBufferQueueItf self, SLOHBufferQueueState *pState) 获取BufferQueue状态。
SLOHBufferQueueItf getBuffer GetBuffer(SLOHBufferQueueItf self, SLuint8 **buffer, SLuint32 *size) 获取buffer。
SLOHBufferQueueItf RegisterCallback RegisterCallback(SLOHBufferQueueItf self, SlOHBufferQueueCallback callback, void *pContext) 注册回调函数。
SLPlayItf SetPlayState SetPlayState(SLPlayItf self, SLuint32 state) 设置播放状态。
SLPlayItf GetPlayState GetPlayState(SLPlayItf self, SLuint32 *pState) 获取播放状态。
SLRecordItf SetRecordState SetRecordState(SLRecordItf self, SLuint32 state) 设置录制状态。
SLRecordItf GetRecordState GetRecordState(SLRecordItf self, SLuint32 *pState) 获取录制状态。
SLVolumeItf SetVolumeLevel SetVolumeLevel(SLVolumeItf self, SLmillibel level) 设置音量。
SLVolumeItf GetVolumeLevel GetVolumeLevel(SLVolumeItf self, SLmillibel *pLevel) 获取音量。
SLVolumeItf GetMaxVolumeLevel GetMaxVolumeLevel(SLVolumeItf self, SLmillibel *pMaxLevel) 获取最大音量。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Native API标准库

harmony 鸿蒙VkExternalFormatOHOS

harmony 鸿蒙VkImportNativeBufferInfoOHOS

harmony 鸿蒙VkMemoryGetNativeBufferInfoOHOS

harmony 鸿蒙VkNativeBufferFormatPropertiesOHOS

harmony 鸿蒙VkNativeBufferPropertiesOHOS

harmony 鸿蒙VkNativeBufferUsageOHOS

harmony 鸿蒙VkSurfaceCreateInfoOHOS

harmony 鸿蒙Vulkan模块

harmony 鸿蒙标准C++库

0  赞