У меня есть байтовый массив (скажем, UInt8 * somebuffer) с данными в неизвестном формате. Я пытался привести к нескольким типам данных и не смог получить какие-либо значимые данные. Я пытаюсь сделать что-то вроде:
float * floatArray = somebuffer;
, а затем работать с содержимым как с плавающей точкой, и я также попробовал с несколькими другими, такими как int и double. Достаточно ли приведения таким образом для доступа к данным, хранящимся в разных типах? Например, число с плавающей точкой будет иметь индексы 0-3 в байтовом массиве, но должно быть индексом 0 в массиве с плавающей точкой, верно?
Помимо этого, речь идет о линейных аудиоданных PCM, вот настройки, которые я использую для генерации данных PCM (я пытаюсь получить уровни из данных PCM для генерации сигнала):
[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:22000.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
[recordSetting setValue:[NSNumber numberWithInt:8] forKey:AVLinearPCMBitDepthKey];
[recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
[recordSetting setValue:[NSNumber numberWithBool:YES] forKey:AVLinearPCMIsFloatKey];