2016-02-10 3 views
0

У меня небольшая проблема с моим кодом, который состоит в том, чтобы воспроизводить звук при запуске приложения. Но вот проблема каждый раз, когда я возвращаюсь к первому экрану, звук снова воспроизводится, и я хочу, чтобы он играл только один раз. Когда всплывает экран меню в первый раз.Как играть звук только один раз SWIFT

Вот мой код

var bubbleSound: SystemSoundID! 
bubbleSound = createBubbleSound() 
AudioServicesPlaySystemSound(bubbleSound) 

(...)

функция

func createBubbleSound() -> SystemSoundID { 
      var soundID: SystemSoundID = 0 
    let soundURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), "bubble", "wav", nil) 
    AudioServicesCreateSystemSoundID(soundURL, &soundID) 
    return soundID 

} 
+1

Где находится 'AudioServicesPlaySystemSound (bubbleSound)'? Это в вашей 'viewDidLoad'? – Caleb

+0

да! в моей ViewDidLoad –

ответ

0

Вы можете определить struct как это (source):

struct MyViewState { 
    static var hasPlayedSound = false 
} 

Затем в viewDidLoad:

if(!MyViewState.hasPlayedSound) { 
    var bubbleSound: SystemSoundID! 
    bubbleSound = createBubbleSound() 
    AudioServicesPlaySystemSound(bubbleSound) 
    MyViewState.hasPlayedSound = true 
} 

Вы можете изменить MyViewState.hasPlayedSound и позволить UIViewController воспроизводить звук снова, если это необходимо.

Смежные вопросы