如何停止背景声音(swift3)

时间:2017-09-01 15:02:56

标签: ios session swift3 avplayer audio-player

我使用函数slowPlay创建了一个播放背景音乐的动作。我试图在stop中反向停止音乐。但音乐并没有停止。

我只想要一个播放音乐的按钮并停止播放音乐。我正在使用代码:

@IBAction func play(_ sender: Any) {
     slowPlay
}

@IBAction func stop(_ sender: Any) {
     slowStop
}

func slowPlay() {
     do {
          let ap = Bundle.main.path(forResource: "slowslow", ofType: "mp3")
          try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: ap!) as URL)
     } catch {
          ////
     }

     let session = AVAudioSession.sharedInstance()
     do {
          try session.setCategory(AVAudioSessionCategoryPlayback)
     } catch {

     }
     player?.play()
}

func slowStop() {
     do {
          let ap = Bundle.main.path(forResource: "slowslow", ofType: "mp3")
          try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: ap!) as URL)
     } catch {
          ////
     }

     let session = AVAudioSession.sharedInstance()
     do {
          try session.setCategory(AVAudioSessionCategoryPlayback)
     } catch {

     }
     player?.stop()
}

2 个答案:

答案 0 :(得分:0)

如果您查看代码示例,则会为播放和停止创建player的新实例。

您需要为您的播放器创建一个类变量,例如:

var player: AVAudioPlayer?

这将允许你这样停止:

func slowStop() {
   player?.stop()
}

答案 1 :(得分:0)

为玩家创建一个单独的实例

X

您可以在执行任何操作之前添加验证以检查播放器是否有效。