Xcode不会在这个文件夹中播放声音?

时间:2014-10-05 23:49:55

标签: ios objective-c xcode

嗨这是一个简单的应用程序,可以在按下按钮时播放声音。我用一大堆声音导入了框架和文件夹,但是当我设置路径时它不会播放声音,当我点击按钮播放声音时,我得到一个NSE异常错误。所以我将声音文件从文件夹中取出,即使该文件夹在我的项目中并且它神奇地播放?有任何想法吗?或者我必须添加哪些额外的代码才能从文件夹中播放?

#import <AVFoundation/AVAudioPlayer.h>

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

AVAudioPlayer *theAudio;


- (IBAction)Yes:(id)sender {

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                         pathForResource:@"yes" ofType:@"mp3"]];



    theAudio = [[AVAudioPlayer alloc]   initWithContentsOfURL:url error:NULL];

    [theAudio play];



}
@end

1 个答案:

答案 0 :(得分:0)

这是您了解异常和捆绑/文件的机会:

首先,例外: NSException是所有异常的根类,并且它本身并不是描述正在发生的事情的有用方法。查看链接的引用,您可以在其中查看哪些属性可用于描述出错的地方。这些属性可从Xcode内部进行检查。最好的方法(IMO)是关于异常的自动断点。只需选择&#34;添加例外断点&#34;从Breakpoint Navigator左下角的+按钮(Xcode左侧的垂直条)。

第二,捆绑: Bundles(为了我们的目的)实际上只是一种特殊的目录。当您使用[NSBundle mainBundle]时,您指的是您的应用程序&#34;顶级&#34;目录。 NSBundle上有几种有用的方法可以帮助您找到资源。其中一个甚至包括将子目录作为参数(提示!)

作为奖励,我觉得提及Stack Overflow会很好,并希望鼓励提高问题质量的习惯,从而提高答案频率和质量。如果您遇到异常并且这是您问题的基础,请提供完整的异常详情。如果您正在使用文件并且它们未正确加载,请在结果设备上包含有关如何组织文件的说明(可能是查找器的屏幕截图)(提示:您可以找到模拟器的应用程序文件。只需设置一个断点并检查从NSBundle方法之一返回的路径的值。