找到要在Objective C中播放的音频文件

时间:2017-10-18 21:13:33

标签: objective-c

我是一个Swift人回去做一些Objc工作而我正在尝试为我的应用添加声音,问题是,pathnull时试图找到文件

该文件位于myProj/Resources/Sounds/genericButtonPress.wav

    NSString *path = [[NSBundle mainBundle] pathForResource:@"myProj/Resources/Sounds/genericButtonPress" ofType:@"wav"];
    NSLog(@"%@", path); // NULL
    NSURL *url = [NSURL fileURLWithPath:path];

    AVAudioPlayer *player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:NULL];
    [player play];

从文档来看,pathForResource似乎必须是绝对的,但我也尝试使用genericButtonPress作为我的字符串。

在这里会有所帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

我的解决方案是

ViewController.h

#import <UIKit/UIKit.h>
#import <AVKit/AVKit.h>

@interface ViewController : UIViewController
@property (nonatomic,strong)AVAudioPlayer *player;
- (IBAction)actionPlayAudio:(id)sender;
@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()
@end
@implementation ViewController
@synthesize player;

- (void)viewDidLoad {
    [super viewDidLoad];
}
- (IBAction)actionPlayAudio:(id)sender {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"youraudiofilename" ofType:@"wav"];
    NSURL *soundFileURL = [NSURL fileURLWithPath:path];
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
    [player play];
}

答案 1 :(得分:0)

答案是:

请记住孩子,始终确保将您的文件分配给正确的目标,或者确保您的文件不会显示并且无法正常工作。特别是字体和音频文件。