如何使用AudioServices播放音效 - 目标C.

时间:2013-01-12 15:03:01

标签: objective-c audio

我一直在网上搜索目标C中播放声音的方法,我找到了很多答案。但是,当我尝试播放三个" Apple Mach-O Linker Errors"弹出。

这是我的代码:

viewController.m

-(IBAction)shoot{
    tempSound *sound = [[tempSound alloc]init];
    [sound playSound:@"test" :@"wav"]  
}

tempSound.h

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>

@interface tempSound : NSObject{
    SystemSoundID audioEffect;
}

-(void)playSound: (NSString*) fName : (NSString*) ext;

@end

tempSound.m

@implementation tempSound

-(void)playSound:(NSString *)fName :(NSString *)ext
{
    NSString *path  = [[NSBundle mainBundle] pathForResource : fName ofType :ext];

    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {

        NSURL *pathURL = [NSURL fileURLWithPath:path];
        AudioServicesCreateSystemSoundID((__bridge CFURLRef)pathURL, &audioEffect);
        AudioServicesPlaySystemSound(audioEffect);
    }

    else{
        NSLog(@"Error, file not found: %@",path);
    }


}

@end

提前致谢!

1 个答案:

答案 0 :(得分:5)

您必须链接到AudioToolbox框架。 (如果您正在使用Xcode,则可以在“构建阶段”部分的“使用二进制文件链接”选项卡中添加;如果您使用的是命令行工具链,则应添加-framework AudioToolbox链接器标志。 )