0

我在这里遇到了一个非常相似的问题:链接 在 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 状态 = 0

我为 CFURLRef 尝试了许多不同的组合,就像您在注释掉的部分中看到的那样。

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

希望你能帮我!谢谢 :)

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

4

1 回答 1

3

OSStatus = 0表示“没有错误”,这意味着该函数AudioServicesCreateSystemSoundID确实成功了。

于 2013-01-12T17:39:45.657 回答