2014-10-18 56 views
0

好的,所以我正在使用SpriteKit進行遊戲,並且整個應用程序中都有背景音樂。最初,我剛剛在每個場景中使用了一個新的AVAudioPlayer以及適當的音頻文件,但是現在我發現在菜單之間移動時我想要不間斷的音頻播放。所以我試圖用一個單獨的類來處理所有的背景音樂。我不知道這在技術上是否可行,如果不是,我想看看是否有另一種方法來解決我的問題。從SpriteKit的課程中播放音頻

所以到代碼...這裏是我的音頻類的頭文件:

#import <AVFoundation/AVFoundation.h> 

typedef NS_ENUM(int, songTitle) { 
    Menu_Music, 
    Level_1, 
    Level_2, 
    Game_Over, 
}; 

@interface NWAudioPlayer : AVAudioPlayer 

@property (nonatomic, assign) songTitle songName; 
@property (nonatomic) AVAudioPlayer* bgPlayer; 

-(void)createAllMusicWithAudio: (songTitle)audio; 

@end 

和這裏的實現:

#import "NWAudioPlayer.h" 

@implementation NWAudioPlayer 

-(void)createAllMusicWithAudio: (songTitle)audio { 

    if ([[GameState sharedGameData] audioWillPlay] == YES) { 
     switch (audio) { 
      case Menu_Music: 
       [self playMusicWithString:@"menuMusic"]; 
       break; 
      case Level_1: 
       [self playMusicWithString:@"Level-1-Music"]; 
       break; 
      case Level_2: 
       [self playMusicWithString:@"Level-2-Music"]; 
       break; 
      case Game_Over: 
       break; 
      default: 
       break; 
     } 
    } 
} 

-(void)playMusicWithString: (NSString *)file { 
    NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"menuMusic" ofType:@"m4a"]; 
    NSURL *soundFileUrl = [NSURL fileURLWithPath:soundFile]; 
    NSError *Error = nil; 
    _bgPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileUrl error:&Error]; 
    _bgPlayer.numberOfLoops = -1; 

    [_bgPlayer prepareToPlay]; 

    NSLog(soundFile); 
} 

@end 

然後這裏是我在我的場景的實現:

-(void)createAudio 
{ 
    [[NWAudioPlayer alloc] createAllMusicWithAudio:Menu_Music]; 
    [[NWAudioPlayer alloc].bgPlayer play]; 
} 

,顯然我會在init FO調用[self createAudio]那個場景。

令人沮喪的部分是,我沒有得到一個單一的錯誤,我的NSLog顯示該方法正在調用正確的音頻文件,但沒有播放。顯然我錯過了一些東西......我很難過。任何幫助表示讚賞!非常感謝!

回答

1

將管理AVAudioPlayer的代碼與場景代碼分開。例如,您可以將其放入應用程序委託中,或者使用單例實例創建您自己的音樂播放器類。

+0

好的,我對使用單身人士並不是很熟悉,所以請原諒我的無知。我會如何做與我的NSAudioPlayer類不同,使它成爲一個單例實例,而不管它現在是什麼? – 2014-10-18 21:49:52

+0

好吧,我想我明白了。無論如何,我有一個基本的單身人士。感謝指針! – 2014-10-18 22:52:42