Я пытаюсь использовать Audio File Services из инфраструктуры 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), как мне получить из него пронумерованные значения (например, если я делаю 'wavread' вMatlab даст мне массив с плавающей точкой), чтобы я мог манипулировать значениями (например, проходить через какой-либо фильтр)?
Любые входные данные очень ценятся!