2013-10-03 35 views
-1

我目前在學習SpriteKit。我在主ViewController中有一個背景音樂播放器實例。但是,當我試圖從SKScene類訪問它時,我無法停止/更改播放器。Spritekit返回rootViewController

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

我是iOS開發新手,管理SpriteKit背景音樂播放器的方法是什麼?謝謝!

回答

3

我會推薦使用背景音樂播放器singleton,例如

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]從任何地方訪問你的音頻播放器。

+0

我從來沒想過這個!感謝你的及時回覆! :) – DazChong

+0

沒問題。隨意標記爲答案;) –

+0

奇怪的是,音頻將只在ViewController內作爲屬性播放。我認爲這是我的代碼錯誤,無論如何,我明白你的想法,並再次感謝。 – DazChong

相關問題