我用AudioEncoder编码了音频数据,现在我想把这些数据保存到文件或者进行其他处理。鸿蒙系统有没有提供相关的API或者建议来处理这些数据?我应该怎么确保数据的完整性和正确性?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
我用AudioEncoder编码了音频数据,现在我想把这些数据保存到文件或者进行其他处理。鸿蒙系统有没有提供相关的API或者建议来处理这些数据?我应该怎么确保数据的完整性和正确性?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
1 回答1k 阅读✓ 已解决
1 回答1.3k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答966 阅读
1 回答937 阅读
调用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) {
}