如何停止播放音频?

时间:2016-01-07 02:44:15

标签: ios swift avaudioplayer

所以我有5个视图控制器,每个控制器上有多个按钮。

我还有一个滚动视图,因此您可以在它们之间滑动/滚动。

我的问题是,当我按下V1上的一个按钮时,会播放声音,如果我滑到V2并按下一个按钮,如果声音在第一个视图上没有完成,则两个声音都会互相播放(反之亦然)。

我正在使用AVAudioPlayer

如何防止这种情况发生?

所以我创建了诸如以下的对象:

let audioObject1 = AllViewsModel(title: "Watering Plants", sound: createPlayerAndFilePath("ILoveit")!)

我标记了每个按钮:

 @IBAction func playPauseButtons(sender: UIButton) {

    switch sender.tag {


    case 10:

        stopAllSounds()
        startTimeAndPlayAudio(audioObject1.sound!)
        buttonSpringLikeAnimation(allButtonsConnectedToThisOutlet[0])
        print("1") }

调用的top函数是我的所有音频对象:

func stopAllSounds() {

    audioObject1.sound?.stop()
    audioObject2.sound?.stop()
    audioObject3.sound?.stop()
    audioObject4.sound?.stop()
    audioObject5.sound?.stop()
    audioObject6.sound?.stop()
    audioObject7.sound?.stop()
    audioObject8.sound?.stop()
    audioObject9.sound?.stop()




}

启动和播放功能是我创建一个AVAudioPlayes实例并定位mp3:

func createPlayerAndFilePath(nameOfMediaFile: String) -> AVAudioPlayer? {

    do {

        let audioFile = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(nameOfMediaFile, ofType: "mp3")!), fileTypeHint: "AVFileTypeMPEGLayer3")

        return audioFile


    } catch {

        print("Audio file error")

    }

    return nil
}

我为5个视图控制器做了这个。我可以阻止音频在每个视图中重叠,但如果我按下另一个视频上的按钮并说第一个视图仍在播放,那么我就有问题。

0 个答案:

没有答案