簡體   English   中英

如何在快速切換到不同視圖的同時連續播放背景音樂?

[英]How can I continuously play background music while switching to different views using swift?

總的來說,我對Swift和編碼是相當陌生的。 我現在正在制作游戲,並且添加了一些背景音樂,並且一切正常。 我什至想出了當切換到不同的視圖時如何使音樂連續播放,但是每次我回到“主菜單”視圖時,我都告訴游戲開始播放背景音樂,然后重新開始播放。 我要它做的是在用戶啟動應用程序時開始播放,並一直循環播放直到用戶關閉應用程序。 我使用以下代碼來啟動背景音樂:

var backgroundMusicPlayer: AVAudioPlayer!

func playBackgroundMusic(filename:String){讓url = NSBundle.mainBundle()。URLForResource(filename,withExtension:nil)if(url == nil){println(“找不到文件:(filename)”)return}

var error: NSError? = nil
backgroundMusicPlayer =
    AVAudioPlayer(contentsOfURL: url, error: &error)
if backgroundMusicPlayer == nil {
    println("Could not create audio player: \(error!)")
    return
}

backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()

}

然后將這段代碼放到Home View Controller中(這是打開應用程序時人們看到的第一個屏幕)

var player = AVAudioPlayer()

if  player.playing {
    player.play()
} else {
    playBackgroundMusic("BackgroundMusic.m4a")
}

現在我要說的是:如果音樂正在播放,它將繼續播放,否則,它將再次開始播放音樂。 但是現在,即使音樂是在我所來自的視圖上播放,它也會再次開始播放音樂。 我在其他2個視圖中使用了這段代碼,使得音樂可以連續播放,並且效果很好:

func resumeBackgroundMusic() {
   if let player = backgroundMusicPlayer {
       if !player.playing {
           player.play()
       }
   }

}

您可以從AppDelegate啟動和停止音樂...最好的方法是創建MusicPlayer類,在AppDelegate中實例化它,然后在其中調用start和stop方法...

您是否有足夠的經驗來編寫類似的東西?

還是我應該幫你?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM