CoreAudio - kAudioFileUnsupportedDataFormatError - PullRequest
       7

CoreAudio - kAudioFileUnsupportedDataFormatError

0 голосов
/ 22 декабря 2011

Я только начинаю с CoreAudio.Просто пытаюсь создать аудиофайл, но получаю kAudioFileUnsupportedDataFormatError со следующим.

Кто-нибудь может дать мне представление, почему?Для меня все это нормально, но я, должно быть, делаю что-то не так.

// Prepare the format
AudioStreamBasicDescription asbd;
memset(&asbd, 0, sizeof(asbd));

asbd.mSampleRate = SAMPLE_RATE;        // 44100

asbd.mFormatID = kAudioFormatLinearPCM;
asbd.mFormatFlags = kAudioFormatFlagIsBigEndian;
asbd.mBitsPerChannel = 16;
asbd.mChannelsPerFrame = 1;
asbd.mFramesPerPacket = 1;
asbd.mBytesPerFrame = 2;
asbd.mBytesPerPacket = 2;

// Set up the file
AudioFileID audioFile;
OSStatus audioErr = noErr;
audioErr = AudioFileCreateWithURL((CFURLRef)fileURL,
                                 kAudioFileAIFFType,
                                 &asbd,
                                 kAudioFileFlags_EraseFile,
                                 &audioFile);

Ответы [ 3 ]

1 голос
/ 30 августа 2014

mFormatFlags являются флагами битовых полей, поэтому их можно комбинировать с использованием побитовых логических операторов, что обусловливает плотность и возможную трудность понимания. Еще один полезный документ, на который стоит обратить внимание перед тем, как «идти за флагами», может быть следующим:

https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/CoreAudioOverview/SupportedAudioFormatsMacOSX/SupportedAudioFormatsMacOSX.html

Кроме того, была также опубликована эта утилита Objective C для получения удобочитаемой формы флагов:

https://gist.github.com/eppz/11272305

Привет! * * 1013

1 голос
/ 22 декабря 2011

Ну, я заставил его работать, изменив mFormatFlags на:

asbd.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | 
                    kLinearPCMFormatFlagIsSignedInteger | 
                    kLinearPCMFormatFlagIsPacked;

Сейчас я ищу документ Apple или другой ресурс, который сообщает вам, какие флаги нужны для какого формата и почему.

0 голосов
/ 22 декабря 2011

«Справочник по типам данных Core Audio» содержит справочный материал для AudioStreamBasicDescription.Но это довольно плотно и трудно понять.

В «Руководстве по хостингу аудиоустройства для iOS» есть раздел «Работа со структурой AudioStreamBasicDescription», который немного более полезен.

д.

...