Невозможно создать аудиофайл с помощью AudioFileCreateWithURL ()

Я пытаюсь создать новый файл на диске и записать на него с помощью платформы Core Audio на OSX. Мое главное препятствие сейчас заключается в том, что я не могу создать файл, используя следующий код. Моя цель — выяснить, почему приведенный ниже код не работает, чтобы я мог возобновить работу над остальной частью моего проекта. Вы можете увидеть вывод этого кода ниже.

string fp = "…path…to…file.../file.wav"CFURLRef audioFileURL = CFURLCreateFromFileSystemRepresentation(
NULL,
(const UInt8 *)fp.c_str(),  // filename
fp.length(),             // number of bytes in filename
false               // this is a file, not a directory
);

if(audioFileURL == NULL){
cout << endl << "audioFileURL == NULL :(";
}

OSStatus retErr = AudioFileCreateWithURL (
audioFileURL,
df.mFormatID,
&aqData.mDataFormat,
kAudioFileFlags_EraseFile,
&aqData.mAudioFile
);
cout << endl << "\nAudioFileCreateWithURL error:" << retErr;

который выводит следующее:

AudioFileCreateWithURL error:1954115647

Мне не повезло выяснить, что означает эта ошибка. Любая помощь здесь приветствуется.

0

Решение

Ошибки Core Audio возвращаются либо в виде числа, либо в виде 4-буквенного кода. Я предполагаю, что странное число, которое вы показываете, является местом в памяти кода.

Вам нужно что-то вроде этого, чтобы определить и преобразовать:

    static char *FormatError(char *str, OSStatus error)
{
// see if it appears to be a 4-char-code
*(UInt32 *)(str + 1) = CFSwapInt32HostToBig(error);
if (isprint(str[1]) && isprint(str[2]) && isprint(str[3]) && isprint(str[4])) {
str[0] = str[5] = '\'';
str[6] = '\0';
} else
// no, format it as an integer
sprintf(str, "%d", (int)error);
return str;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]