我目前正在学习SpriteKit。我在主ViewController上有一个背景音乐播放器实例。但是,当我尝试从SKScene课程访问它时,我无法停止/更改播放器。
ViewController *vc = (ViewController *) self.view.window.rootViewController;
AVAudioPlayer *player = vc.backgroundMusicPlayer;
[player stop]; //nothing happened
我是iOS开发人员的新手,管理SpriteKit背景音乐播放器的方式是什么?谢谢!
答案 0 :(得分:3)
我建议使用背景音乐播放器单例,例如
<强> BackgroundMusicPlayer.h 强>
@interface BackgroundMusicPlayer : NSObject
+ (instancetype)sharedPlayer;
@property (nonatomic, strong) AVAudioPlayer *audioPlayer;
@end
<强> BackgroundMusicPlayer.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]
从任意位置访问您的音频播放器。