创建SystemSoundID失败iOS - OSStatus = 0

时间:2013-01-12 16:52:03

标签: ios audiotoolbox system-sounds

我遇到了类似的问题:link 在ViewController.h文件中,我添加了这个:

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

@interface ViewController : UIViewController
@property SystemSoundID outSystemSoundID1;
@end

并在ViewController.m中:

#import <ViewController.h>
@interface ViewController ()
- (IBAction)playtrack;


@end

@implementation ViewController

@synthesize outSystemSoundID1;

- (void)viewDidLoad
{
[super viewDidLoad];

NSString *path1 = [[NSBundle mainBundle] pathForResource:@"1000Hz-0-4sec" ofType:@"wav"];
NSURL *url1 = [NSURL fileURLWithPath:path1];
//CFURLRef lol = (CFURLRef)objc_unretainedPointer(url1);
//AudioServicesCreateSystemSoundID( lol, &outSystemSoundID1);
OSStatus status = AudioServicesCreateSystemSoundID((__bridge CFURLRef)url1, &outSystemSoundID1);
NSLog(@"AudioServicesCreateSystemSoundID status = %ld", status);
}

- (IBAction)playtrack {
AudioServicesPlaySystemSound (outSystemSoundID1);
}
@end

我要播放的声音文件位于支持文件下。

OSStatus说:

  

AudioServicesCreateSystemSoundID status = 0

我试过CFURLRef许多不同的组合,就像你在评论部分看到的一样。

也许我的文件不受支持?在我得到解决方案后,我想以这种方式初始化aif格式的3个声音文件。

希望你能帮助我!谢谢:))

我已激活ARC,而且我使用的是iOS 6.0.1(iPhone)

1 个答案:

答案 0 :(得分:3)

OSStatus = 0表示“无错误”,表示函数AudioServicesCreateSystemSoundID 成功