-1

現在、SpriteKit で学習しています。メインの ViewController にバックグラウンド ミュージック プレーヤーのインスタンスがあります。しかし、SKScene クラスからアクセスしようとすると、プレーヤーの停止/変更ができません。

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

SpriteKit のバックグラウンド ミュージック プレーヤーを管理する方法を教えてください。ありがとう!

4

1 に答える 1

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]

于 2013-10-03T09:25:20.517 に答える