系统 SHALL 在原生音频输出回调 AudioRendererOnWriteData 中,于均衡器处理完成后,将 PCM 数据拷贝到一个固定大小的环形缓冲区中。缓冲区 SHALL 使用单写单读无锁模式,写端为音频线程,读端为 NAPI 调用线程。
has_data 标志为 truepause_on == true)AudioRendererOnWriteData 直接返回,不向缓冲区写入任何数据环形缓冲区 SHALL 同时记录当前音频的采样率(sample_rate)和声道数(channels),供 ArkTS 侧读取时使用。
AoutOpenAudio 初始化成功desired->freq(采样率)和 desired->channels(声道数)写入缓冲区的元信息字段系统 SHALL 提供名为 _getSpectrumData 的 NAPI 函数,ArkTS 侧可通过此函数同步获取当前环形缓冲区中的 PCM 数据快照。
_getSpectrumData(id)number[] 数组(1024 个样本,单声道),以及当前采样率_getSpectrumData(id) 但缓冲区 has_data 为 false(未开始播放或已停止)[]channels == 2)IjkMediaPlayer 类 SHALL 新增 getSpectrumData(): number[] 公开方法,封装对原生 _getSpectrumData NAPI 的调用。
IjkMediaPlayer.getInstance().getSpectrumData()number[],长度为 1024 或 0(无数据时)