gpt4 book ai didi

iphone - 操作 AudioBuffer 的 mData 中的数据

转载 作者:行者123 更新时间:2023-11-29 05:03:34 25 4
gpt4 key购买 nike

我是 iOS 编程新手,我正在使用此处找到的一些代码:http://code.google.com/p/ios-coreaudio-example/

基本上,我从麦克风获取输入并将其直接路由到扬声器/耳机。不过,我想在音频在扬声器中播放之前对其进行操作。

我想访问和操作 void * 类型的 mData,我想我必须将其转换为其他内容。

现在这是我的代码:

SInt16* samples = (SInt16*)(tempBuffer.mData); //cast to something usable

for ( int i = 0; i < tempBuffer.mDataByteSize; i++ )
{
NSLog(@"%@", *(samples+i));
}

我什至不确定通过指针访问数据的最佳方式是什么。我在学校里对 C++ 指针有一些经验,但我不确定它在 Objective-C 中是否有什么不同(我只是通过此代码得到 EXC_BAD_ACCESS )。

谢谢。

最佳答案

使用 RemoteIO 音频单元时,您可以将 AudioUnitSetProperty 与 kAudioUnitProperty_StreamFormat 结合使用来设置音频样本帧所需的数据类型和格式。然后,由于您设置了数据类型,因此您将知道从回调缓冲区读取样本时要使用(强制转换)什么类型。

另请注意,缓冲区中短整型或短 float 的数量小于字节数(使用 Apple 的 C 数据类型)。

关于iphone - 操作 AudioBuffer 的 mData 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242846/

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