簡體   English   中英

在多個場景中使用AVAudioPlayer Swift並能夠調節音量

[英]Using AVAudioPlayer across multiple scenes Swift and be able to adjust volume

嗨,我想知道是否有一種方法可以在多個場景中使用AVAudioPlayer並更改音量。 我目前將其放在我的gameViewController中,它是應用程序所有場景的控制器:

override func viewDidAppear(animated: Bool) {
    let backgroundMusicURL = NSBundle.mainBundle().URLForResource("tempMusic.mp3", withExtension: nil)
    backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: backgroundMusicURL, error:nil)
    backgroundMusicPlayer.numberOfLoops = -1
    backgroundMusicPlayer.prepareToPlay();
    backgroundMusicPlayer.play();
}

這可以按預期工作,但是我無法控制場景本身的音量。

因此,是否有一種方法可以播放背景音樂,使其在多個場景中平穩運行,並且在這些場景中仍可調節音量?

好的,我可以使用Matt提供的鏈接來使它正常工作(因此,該帖子的未來查看者會投票贊成他的評論)。

if let vc = UIApplication.sharedApplication().keyWindow?.rootViewController as? GameViewController{
   vc.setMusicVolume(Float(hexData.musicVolume)/100.0);
}

現在,我從場景本身內部訪問rootViewController。 為了預防起見,我將其放在if語句中。

您應該可以通過以下方式訪問viewController:

self.view?.window?.rootViewController

就是說,不建議這樣做,因為它會破壞MVC模式。

暫無
暫無

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

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