Objective C - 获取支持文件子文件夹中的文件路径
Objective C - Get file path in subfolder of supporting files
我正在尝试播放位于几个子文件夹中的 mp3:
NSString *fName = @"subfolder1/subfolder2/mp3name";
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:fName ofType: @"mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath ];
myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
[myAudioPlayer play];
mp3如果不在子文件夹中会播放,但在子文件夹中不会像上面那样播放。如何从子文件夹中获取要播放的 mp3?
您需要使用不同的方法来指定路径:
- (NSString *)pathForResource:(NSString *)name
ofType:(NSString *)extension
inDirectory:(NSString *)subpath
当您将资源文件作为整个文件夹添加到您的项目时,Xcode 会询问您是否要:
- 创建群组
- 创建文件夹引用
在第一种情况下,添加的文件夹在项目导航器中显示为黄色文件夹图标,并且所有包含的文件都被复制到应用程序包的根目录(所以文件可能会发生名称冲突)。
在第二种情况下,添加的文件夹在 Project Navigator 中显示为 blue 文件夹图标(类似于资产目录),当二进制文件是建成。
我认为在第二种情况下你可以使用 NSBundle
's
-pathForResource:ofType:inDirectory:
访问子目录中的资源。
无论哪种方式,第一个参数应该是没有任何中间子目录的文件名(如评论中提到的@DBoyer)。
我正在尝试播放位于几个子文件夹中的 mp3:
NSString *fName = @"subfolder1/subfolder2/mp3name";
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:fName ofType: @"mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath ];
myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
[myAudioPlayer play];
mp3如果不在子文件夹中会播放,但在子文件夹中不会像上面那样播放。如何从子文件夹中获取要播放的 mp3?
您需要使用不同的方法来指定路径:
- (NSString *)pathForResource:(NSString *)name
ofType:(NSString *)extension
inDirectory:(NSString *)subpath
当您将资源文件作为整个文件夹添加到您的项目时,Xcode 会询问您是否要:
- 创建群组
- 创建文件夹引用
在第一种情况下,添加的文件夹在项目导航器中显示为黄色文件夹图标,并且所有包含的文件都被复制到应用程序包的根目录(所以文件可能会发生名称冲突)。
在第二种情况下,添加的文件夹在 Project Navigator 中显示为 blue 文件夹图标(类似于资产目录),当二进制文件是建成。
我认为在第二种情况下你可以使用 NSBundle
's
-pathForResource:ofType:inDirectory:
访问子目录中的资源。
无论哪种方式,第一个参数应该是没有任何中间子目录的文件名(如评论中提到的@DBoyer)。