AudioEncoder编码后的数据,我应该怎么保存或进一步处理?

我用AudioEncoder编码了音频数据,现在我想把这些数据保存到文件或者进行其他处理。鸿蒙系统有没有提供相关的API或者建议来处理这些数据?我应该怎么确保数据的完整性和正确性?

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 803
1 个回答

调用OH_AudioCodec_FreeOutputBuffer(),输出编码格式码流。

uint32_t index = signal_->outQueue_.front();
OH_AVBuffer *avBuffer = signal_->outBufferQueue_.front();
// 获取buffer attributes
OH_AVCodecBufferAttr attr = {0};
ret = OH_AVBuffer_GetBufferAttr(avBuffer, &attr);
if (ret != AV_ERR_OK) {

// 异常处理

}
// 将编码完成数据data写入到对应输出文件中
outputFile_->write(reinterpret_cast<char *>(OH_AVBuffer_GetAddr(avBuffer)), attr.size);
// 释放已完成写入的数据
ret = OH_AudioCodec_FreeOutputBuffer(audioEnc_, index);
if (ret != AV_ERR_OK) {

// 异常处理

}
if (attr.flags == AVCODEC_BUFFER_FLAGS_EOS) {

// 结束

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进