0

可能重复:
xcode 4.2 音板?

嗨,我正在为我的 iPhone 应用程序创建一个音板,但我的代码中不断出现错误等,你们可以编辑它吗?或者你知道我正在使用 Xcode 4.2 的音板有更好的代码吗,我是新手,所以请清楚谢谢你的时间,我真的很感激!!

.h 都很好,我认为没有错误

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


@interface ViewController : UIViewController {

}

-(IBAction)sound1:(id)sender;


@end

.m 这是有错误的

#import "ViewController.h"

//@interface ViewController ()


@implementation ViewController


-(IBAction)sound1:(id)sender {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"sound1" , CFSTR ("wav") , null);
}

uint32 soundID;
AudioservicecreatesystemsoundID(soundfileURLRef, &soundID);
AudioservicesPlaysystemsound(soundID) 



- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
@end

谢谢你希望你能帮助我

4

1 回答 1

0

AudioToolbox 可能对您的需求来说有点太低级了......您可能可以通过使用 AVFoundation 让您的生活更轻松;特别是AVAudioPlayer类。

在您的实施中:

#import <AVFoundation/AVFoundation.h>

- (void)viewDidLoad
{
    NSString      *soundPath = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"];
    NSURL         *soundURL  = [NSURL fileURLWithPath:soundPath];
    NSError       *error     = nil;
    AVAudioPlayer *player    = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error];

    if ( ! player )
    {
        NSLog(@"%@", [error description]);
    }
    else
    {
        [player prepareToPlay];
        [player play];
    }
}

请注意,我在这里没有进行任何内存管理。此外,如果您需要一次播放多个声音,您可以创建额外的 AVAudioPlayer 实例,或者您可以查看 OpenAL 库……这里的github 上有一个很好的包装器。

于 2012-04-26T23:18:48.063 回答