objective-c - 如何使用AudioServices播放声音效果- objective-c

标签 objective-c audio

我一直在网上搜索一种在Objective 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

提前致谢!

最佳答案

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

关于objective-c - 如何使用AudioServices播放声音效果- objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14294581/

相关文章:

java - 将Java程序的所有库、音频等包含在一个JAR文件中

ios - 如何从给定的网格生成俄罗斯方 block

ios - 不推荐使用 CaptiveNetwork 并且已阻止对 Wifi 名称的调用后如何在 iOS9 中获取 Wifi SSID

javascript - 如何判断 HTML5 音频元素何时播放完毕?

java - Android:具有语音电平可视化的录音

android - 如何更改 Android 中的默认快门声音?

ios - UITableViewCell accessoryType 不起作用 Xcode 6.0.3

iphone - 系统声音 ID 音量

c++ - XCode 导入语句和子目录

objective-c - 如何在 iOS 的 Objective-C 中读取音频文件的属性?