-1

我目前正在使用 SpriteKit 学习。我在主 ViewController 有一个背景音乐播放器实例。但是,当我尝试从 SKScene 类访问它时,我无法停止/更改播放器。

ViewController *vc = (ViewController *) self.view.window.rootViewController;
AVAudioPlayer *player = vc.backgroundMusicPlayer;
[player stop]; //nothing happened

我是 iOS 开发新手,管理 SpriteKit 背景音乐播放器的方法是什么?谢谢!

4

1 回答 1

3

我建议使用背景音乐播放器单例,例如

背景音乐播放器.h

@interface BackgroundMusicPlayer : NSObject

+ (instancetype)sharedPlayer;

@property (nonatomic, strong) AVAudioPlayer *audioPlayer;

@end

背景音乐播放器.m

@implementation BackgroundMusicPlayer

+ (instancetype)sharedPlayer
{
    static BackgroundMusicPlayer *sharedPlayer;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedPlayer = [self new];
    });
    return sharedPlayer;
}

@end

然后,您可以通过调用从任何地方访问您的音频播放器[[BackgroundMusicPlayer sharedPlayer] audioPlayer]

于 2013-10-03T09:25:20.517 回答