gpt4 book ai didi

c - 读取 AudioFileInitializeWithCallbacks 所需的回调? Apple 音频文件 API

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:34 25 4
gpt4 key购买 nike

我正在尝试使用 AudioFile 和 ExtAudioFile API 编写低级音频编写器。我正在使用 AudioFileInitializeWithCallbacks 创建一个新的音频文件,但看起来这需要实现读取和获取大小回调。为什么这不能只接受单个写入回调并相信数据已成功写入。

如果我正在写入无法搜索到的流(例如 CD 或网络套接字)怎么办?

当然,这应该只是不断地将数据推送到写入回调,如果操作不成功,我有责任在需要的地方写入此数据并返回错误代码。

AudioFile_SetSizeProc 和 AudioFile_WriteProc 的文档似乎不正确,因为它们都在谈论读取操作“inPosition 到要读取的数据的偏移量。”,“@result 回调应该返回数据的大小。”。

目前我已经通过只写入一个文件来解决这个问题,但是在第一次写入过程之后我得到了一个 kExtAudioFileError_InvalidOperationOrder。这是什么意思?文档中没有关于它的评论。

如有任何指点或帮助,我们将不胜感激。

最佳答案

这里的 Apple 文档是错误的。检查头文件AudioFile.h:

/*!
@typedef AudioFile_SetSizeProc
@abstract A callback for setting the size of the file data. used with AudioFileOpenWithCallbacks or AudioFileInitializeWithCallbacks.
@discussion a function that will be called when AudioFile needs to set the size of the file data. This size is for all of the
data in the file, not just the audio data. This will only be called if the file is written to.
@param inClientData A pointer to the client data as set in the inClientData parameter to AudioFileXXXWithCallbacks.
@result The callback should return the size of the data.
*/

typedef OSStatus (*AudioFile_SetSizeProc)(
void * inClientData,
SInt64 inSize);

关于c - 读取 AudioFileInitializeWithCallbacks 所需的回调? Apple 音频文件 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11063795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com