C AudioFileOpenUrl不工作

C AudioFileOpenUrl不工作,c,core-audio,audiotoolbox,audioqueueservices,cfurl-encoding,C,Core Audio,Audiotoolbox,Audioqueueservices,Cfurl Encoding,我正在使用苹果的音频队列在我的电脑上播放音频文件。我遵循了他们的指南,但是当我要求用户插入绝对路径来研究音频文件时,我遇到了一个问题。这是我的密码。我希望你能帮助我。。。我试着在谷歌上找到答案,但所有的答案都是或在Objective-C或Swift中,我用C编写的 void getUrlofAudioFile(CBRAudioFileRef userData) { char *filePath = NULL; OSStatus result = noErr; filePath = (char

我正在使用苹果的音频队列在我的电脑上播放音频文件。我遵循了他们的指南,但是当我要求用户插入绝对路径来研究音频文件时,我遇到了一个问题。这是我的密码。我希望你能帮助我。。。我试着在谷歌上找到答案,但所有的答案都是或在Objective-C或Swift中,我用C编写的

void getUrlofAudioFile(CBRAudioFileRef userData) {
char *filePath = NULL;
OSStatus result = noErr;

filePath = (char *)malloc(sizeof(char) * PATH_LIMIT);
fprintf(stdout, "Please insert the full pathname of the audio file.\nPathname: ");
fgets(filePath, PATH_LIMIT, stdin);

CFURLRef audioFileURL = CFURLCreateFromFileSystemRepresentation(NULL, (Byte *)filePath, strlen(filePath),
                                                                       false);
if(!audioFileURL) printf("Can't parse file path.\n");

result = AudioFileOpenURL(audioFileURL, kAudioFileReadPermission, 0, &userData->queueId);

if(result != noErr) {
    printf("Unable to open AudioFile\n");
    exit(1);
}

CFRelease(audioFileURL);
free(filePath);
}

请注意,queueId是一个AudioFileId对象,路径限制定义为200


结果,在AudioFileOpenUrl的调用值为2003334207之后。

什么错误是kAudioFileUnspecifiedError='wht',这没有多大帮助。尝试显示您的audioFileURL。谢谢您的回复,但幸运的是我刚刚发现了错误。对于fgets,我得到了字符串,还有'\n'字符。用“\0”替换有效。