0

我正在使用 Apple 的音频队列在我的计算机上播放音频文件。我已经按照他们的指南进行操作,但是当我要求用户插入绝对路径来研究音频文件时遇到了问题。这是我的代码。我希望你能帮助我......我试图在谷歌上找到一个答案,但他们都在 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);

}

PS注意queueId是一个AudioFileId对象,PATH_LIMIT定义为200

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

4

0 回答 0