gpt4 book ai didi

iphone - iPhone SDK 中是否有 FSRef 或者有什么东西可以作为 FSRef 的替代品?

转载 作者:行者123 更新时间:2023-12-03 21:00:13 24 4
gpt4 key购买 nike

这个问题可能听起来很愚蠢,但事实是这样的:我正在学习如何使用音频队列,我所采取的示例(aqtest)对我来说一直是一个很好的指南,直到我最近发现 aqtest 是不适用于iPhone。 (愚蠢的我)我在互联网上服务,发现没有适用于 iPhone 的 FSRef。

如果可能的话,我想找到一种方法来解决 FSRef 问题。那么问题来了:我可以使用其他东西来代替 iPhone SDK 上存在的 FSRef 吗?或者我错过了什么?

最佳答案

FSRefs 在手机上根本不可用。 FSRef 是一种表示文件引用的方式,对于大多数用途来说,首选的替代方案是带有 file: 方案的 NSURL。

话虽如此,肯定有一个 SpeakHere以 iPhone 为例,它不使用 FSRefs。

对于 aqtest,我假设您遇到问题的代码是:

FSRef fsref;    
XThrowIfError(FSPathMakeRef(filePath, &fsref, NULL), "Input file not found");

XThrowIfError(AudioFileOpen(&fsref, fsRdPerm, 0, &myInfo.mAudioFile), "AudioFileOpen failed");

就像我说的,FSRef 不再是处理文件引用的首选方式,并且在手机上不可用,NSURL 是。因此,请切换到基于 URL 的版本:

NSString *pathString = [NSString stringWithCString: filePath];
if (!pathString) { printf("can't parse file path\n"); return; }

NSURL *url = [NSURL fileURLWithPath:pathString];
if (! url) { printf("can't make file url\n"); return; }

XThrowIfError(AudioFileOpenURL (url, kAudioFileReadPermission, 0/*inFileTypeHint*/, &myInfo.mAudioFil), "can't open file");

这应该可以在手机上运行,​​当然很多 aqtest 本身无法在手机上运行,​​毕竟不支持在设备上运行命令行工具。

关于iphone - iPhone SDK 中是否有 FSRef 或者有什么东西可以作为 FSRef 的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1163794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com