iOS 上的背景音乐停止/静音

Posted

技术标签:

【中文标题】iOS 上的背景音乐停止/静音【英文标题】:Background Music Stop/Mute on iOS 【发布时间】:2016-03-13 10:36:35 【问题描述】:

我正在创建我的第一个应用程序。我有一个在后台播放音乐的应用程序,代码如下:

var backgroundMusicPlayer = AVAudioPlayer()

override func viewDidLoad() 
    super.viewDidLoad()

    //background Music
    func playBackgroundMusic(filename: String) 
        let url = NSBundle.mainBundle().URLForResource(filename, withExtension: nil)
        guard let newURL = url else 
            print("Could not find file: \(filename)")
            return
        
        do 
            backgroundMusicPlayer = try AVAudioPlayer(contentsOfURL: newURL)
            backgroundMusicPlayer.numberOfLoops = -1
            backgroundMusicPlayer.prepareToPlay()
            backgroundMusicPlayer.play()
         catch let error as NSError 
            print(error.description)
        

    

    playBackgroundMusic("Starship.wav")

那么当我切换到另一个 ViewController 时,我应该怎么做才能停止/静音背景音乐?我应该这样做我的 FirstViewController 还是 SecondViewController

显然,我不希望在 SecondViewController 中关闭声音,因为我还有其他要播放的东西。

【问题讨论】:

【参考方案1】:

要静音,我只需将音量静音。

backgroundMusicPlayer.volume = 0

如果我想要声音,请将其设置为正常

backgroundMusicPlayer.volume = 1

如果你只是想暂停音乐,你可以打电话

backgroundMusicPlayer.pause()

要恢复您的通话

 backgroundMusicPlayer.resume()

如果您想停止音乐并将其重置为开头,您可以这样说

 backgroundMusicPlayer.stop()
 backgroundMusicPlayer.currentTime = 0        
 backgroundMusicPlayer.prepareToPlay()

您是否也考虑过将您的音乐放入一个单例类中,以便在不同的视图控制器中播放音乐更容易。

不确定这是您要查找的内容,因为您的问题有点模糊。

【讨论】:

完全符合我的要求。不知道把它放在一个单例中意味着什么。我是应用程序制作的新手。为了更清楚我所做的。这是一个音乐应用程序,它必须在菜单中播放背景音乐,但是一旦您转到音乐“选项卡”,就不应该有背景,因为可能会启动音乐播放列表。希望这是有道理的。但是你给我的答案,很有帮助 嘿,不客气。单例基本上意味着您创建一个只退出一次的类。因此,您可以在多个视图控制器等中访问同一个类,而无需将音乐代码放在各处。音乐是单例类有用的一个很好的例子。为了更好地了解你可以查看我的 gitHub 助手。 github.com/crashoverride777/Swift2-Music-Helper

以上是关于iOS 上的背景音乐停止/静音的主要内容,如果未能解决你的问题,请参考以下文章

ipad上的背景音频不会停止

想要为全屏视频背景上的音频创建自定义静音/取消静音按钮

如何使用 Swift 2(Xcode 7)在我的 Sprite Kit 游戏中为背景音乐设置静音按钮?

EasyPlayer声音自动停止恢复,一键静音等功能

如何在 SpriteKit / Objective C 中添加“静音”按钮?

Adobe Flash/动画静音特定音频