"无" value NSString值用于audioFilePath-AVAudioPlayer时出错

时间:2014-07-13 18:11:08

标签: ios nsstring avaudioplayer nsinteger

我有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"];

}

1 个答案:

答案 0 :(得分:0)

如果您的audioFilePath变量在运行nil后以pathForResource的形式返回,则无法在您的捆绑包中找到该文件。

由于您已经检查了value字符串以确保它是正确的并且您知道stringWithFormat调用正在运行,因此您可能会留下最可能的解释 - 文件确实没有存在于你的包中。

你是如何将这些MP3文件添加到你的应用程序的?您确定它们是应用程序目标的一部分(如果它们不是它们将不被放入捆绑包中)吗?