SKScene中的AVAudio Player出错

时间:2014-04-30 23:11:54

标签: ios audio avfoundation sprite-kit avaudioplayer

我正在尝试使用AVAudioPlayer在我的游戏中制作背景音乐,因此我使用initWithSize的{​​{1}}方法设置此代码:

SKScene

然后,在另一种方法中://SETTING BACKGROUND MUSIC// NSError * err = nil; NSURL * musicFile = [[NSBundle mainBundle] URLForResource:@"Cosmic Rush" withExtension:@"m4a"]; music = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:&err]; if(err) { NSLog(@"%@", [err userInfo]); return; } [music prepareToPlay]; music.numberOfLoops = -1; [music setVolume:0.5]; //SETTING BACKGROUND MUSIC// 然而,声音永远不会播放,我尝试过所有类型的扩展程序:[music play];.mp3.caf等。我们也检查了那些遇到同样问题的人,但解决他们问题的解决方案都没有与我合作。

1 个答案:

答案 0 :(得分:0)

有一种更简单的方法可以为场景添加背景音乐。我使用以下步骤,其工作方式与其他方法一样好,而且更容易。

导入场景顶部的@import AVFoundation;

@implementation之后立即将其添加为媒体资源。

AVAudioPlayer *_backgroundMusicPlayer;

然后声明音乐的方法

- (void)playBackgroundMusic:(NSString *)filename
{
    NSError *error;
    NSURL *backgroundMusicURL =
    [[NSBundle mainBundle] URLForResource:filename
                            withExtension:nil];
    _backgroundMusicPlayer =
    [[AVAudioPlayer alloc]
     initWithContentsOfURL:backgroundMusicURL error:&error];
    _backgroundMusicPlayer.numberOfLoops = -1;
    [_backgroundMusicPlayer prepareToPlay];
    [_backgroundMusicPlayer play];
}

之后在-(id)initWithSize:(CGSize)size中创建对该方法的引用,如下所示

[self playBackgroundMusic:@"bgMusic.mp3"];

应该为你处理背景音乐。