gpt4 book ai didi

ios - 使用 ExtAudioFileSeek 和 ExtAudioFileRead 从音频文件中读取编码帧

转载 作者:行者123 更新时间:2023-11-29 00:48:18 25 4
gpt4 key购买 nike

这是我想做的:

从麦克风获取音频

  • 将其编码为 AAC、G.711 或 G.726
  • 将编码帧写入套接字。

这就是我试图到达那里的方式:

  • 我正在使用 TheAmazingAudioEngine 从麦克风获取音频 (PCM)并将其放入缓冲区;
  • 使用TPAACAudioConverter我正在从缓冲区读取音频并写入临时文件 (AAC);
  • 在 TPAACAudioConverter 的处理线程中,我替换了这个:

    OSStatus status = ExtAudioFileWrite(destinationFile, numFrames, &fillBufList);

    用这个:

    OSStatus status = ExtAudioFileWrite(destinationFile, numFrames, &fillBufList);

    UInt32 framesWritten = numFrames;
    totalFramesWritten += framesWritten;

    AudioBufferList readData;
    readData.mNumberBuffers = 1;

    ExtAudioFileSeek(destinationFile, totalFramesWritten - framesWritten);

    OSStatus readStatus = ExtAudioFileRead(destinationFile, &numFrames, &readData);

    ExtAudioFileSeek(destinationFile, totalFramesWritten);

    NSLog(@"Bytes read=%d", numFrames);

    但我得到的是从文件中读取的 0 numFrames。

关于我可能做错了什么的任何想法或关于实现我需要的替代路径的任何建议?

最佳答案

问题是,无论 ExtAudioFile 在幕后做什么,都不允许在打开以进行写入的文件上进行搜索。如果您查看 ExtAudioFileSeek 的文档,它会说“此函数在打开文件以进行写入时的行为当前未定义”。

您可以通过使用更具扩展性(和难度)的 Audio File Services 来解决这个问题和 Audio Converter Services直接代替方便的扩展音频文件服务。

关于ios - 使用 ExtAudioFileSeek 和 ExtAudioFileRead 从音频文件中读取编码帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38399490/

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