gpt4 book ai didi

objective-c - 从 NSMutableData 保存和检索 Sint16

转载 作者:行者123 更新时间:2023-11-29 04:29:51 24 4
gpt4 key购买 nike

我需要在某个地方保存然后检索 Sint16(2 个字节)。

我得到:

SInt16* frames = (SInt16*)inBuffer->mAudioData;

并且想要将&frames[i]保存到某个地方(NSMutableData?)以便以后可以轻松检索。我尝试像这样保存(循环):

[recordedData appendBytes:&frames[i] length:1];

并检索:

    SInt16* framesRetrieve ;

//sets up mybytes buffer and reads in data from myData
framesRetrieve = (SInt16*)malloc([mutableData framesRetrieve]);

[mutableData getBytes:framesRetrieve];

但是这个返回值与我输入的不一样。

那么解决方案是什么?

谢谢。

最佳答案

您需要知道数据的长度,然后可以将整个缓冲区存储在 NSMutableData 对象中:

存储:

SInt16 *frames = ...;
NSUInteger length = ...; // Assuming number of elements in frames, not bytes!
NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
[data appendBytes:(const void *)frames length:length * sizeof(SInt16)];

检索:

SInt16 *frames = (SInt16 *)[data bytes];
NSUInteger length = [data length] / sizeof(SInt16);

关于objective-c - 从 NSMutableData 保存和检索 Sint16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11877914/

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