我有114个音频文件来自" 0"至" 113"。现在AVAudioPlayer
将加载音频文件取决于用户选择了哪一行。例如,如果用户选择indexPath 0处的行," 0.mp3"文件将被加载。现在,为了使它工作,我试图将NSInteger*_selectedRow
值转换为String值,并将此String值用作AVAudioPlayer
的音频文件路径。但我的应用程序给出了错误#Nil" String Error的值并且崩溃了。我可能做了些蠢事。
这就是我试过的
-(viewDidLoad){
NSString *selectRow=[NSString stringWithFormat:@"%d",_selectedRow];
NSLog(@"Value %@",selectRow);//this is working
[self audioFilling:selectRow];
}
- (void)audioFilling:(NSString*)value{
NSError *error;
// this audioFilePath is getting Nil for pathFor Resource
NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:value ofType:@"mp3"];
NSURL *pathAsURL = [[NSURL alloc] initFileURLWithPath:audioFilePath];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:pathAsURL error:&error];
NSString *fileString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:(NSString*)value ofType:@"txt"]
encoding:NSUTF8StringEncoding
error:nil];
timeArray=[fileString componentsSeparatedByString:@"\n"];
}
答案 0 :(得分:0)
如果您的audioFilePath
变量在运行nil
后以pathForResource
的形式返回,则无法在您的捆绑包中找到该文件。
由于您已经检查了value
字符串以确保它是正确的并且您知道stringWithFormat
调用正在运行,因此您可能会留下最可能的解释 - 文件确实没有存在于你的包中。
你是如何将这些MP3文件添加到你的应用程序的?您确定它们是应用程序目标的一部分(如果它们不是它们将不被放入捆绑包中)吗?