gpt4 book ai didi

iphone - 如何使用音频文件服务获取音频文件的原始数据?

转载 作者:行者123 更新时间:2023-12-03 19:42:13 27 4
gpt4 key购买 nike

我正在尝试使用 AudioToolBox 框架中的音频文件服务从 wav 文件中获取原始数据。具体来说,我使用 AudioFileReadBytes() 调用来获取字节。这是我的相关代码:

NSString *audioFilePath = [[NSString stringWithCString:argv[1]
encoding:NSUTF8StringEncoding]
stringByExpandingTildeInPath];
NSURL *audioURL = [NSURL fileURLWithPath:audioFilePath];

AudioFileID audioFile;
OSStatus theErr = noErr;
UInt64 fileDataSize = 0;
AudioStreamBasicDescription theFileFormat;
UInt32 thePropertySize = sizeof(theFileFormat);
theErr = AudioFileOpenURL((CFURLRef)audioURL, kAudioFileReadPermission, 0, &audioFile);

thePropertySize = sizeof(fileDataSize);
theErr = AudioFileGetProperty(audioFile, kAudioFilePropertyAudioDataByteCount, &thePropertySize, &fileDataSize);

//Read data into buffer
UInt32 dataSize = fileDataSize;
void* theData = malloc(dataSize);
if (theData) {
AudioFileReadBytes(audioFile, false, 0, &dataSize, theData);
// create an NSData object to hold the buffer data
NSData* nsdata = [NSData dataWithBytesNoCopy:theData length:dataSize]; //?
}

现在的问题是:创建 NSData 对象(nsdata)后,如何从中获取编号值(就像我在 Matlab 中执行“wavread”,它会给我一个 float 数组),以便我可以操纵值(例如通过某些过滤器)?

非常感谢您的任何意见!

最佳答案

我根本不知道为什么你需要 NSData 对象。

将 AudioFileGetProperty 与 kAudioFilePropertyDataFormat 结合使用,您应该能够确定音频数据的类型(例如 float 组)等,以及如何解释“theData”。

关于iphone - 如何使用音频文件服务获取音频文件的原始数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5101150/

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