Xcode AVAudioPlayer没有播放

时间:2013-03-23 12:47:32

标签: ios xcode

我有一个ViewController:GLKViewController 使用此代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"background-music-aac" ofType:@"caf"];
    NSURL *url = [NSURL URLWithString:path];
    NSData *data = [NSData dataWithContentsOfURL:url];

    AVAudioPlayer *audio = [[AVAudioPlayer alloc] initWithData:data error:nil];
    audio.delegate = self;
    audio.volume = 1.0;
    audio.numberOfLoops = -1;

    [audio prepareToPlay];
    [audio play];

    [self setupContext];
    [self setupDisplay];
}

然而......我的图形内容工作正常,但iOS模拟器不播放任何音乐。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

假设您正在使用ARC,则只要您的方法返回其调用方,播放器就会被释放。引用this answer

  

ARC向音频播放器插入一个释放调用,因此在离开创建它的方法后立即取消分配。

尝试将AVAudioPlayer作为属性实施。

如果data为零,则文件未正确添加到项目中。要将文件添加到项目中,只需将其拖放并添加到目标中即可。

另外,AVAudioPlayer有一个方法initWithContentsOfURL:,您可能想要使用它。