1

我一直在试图弄清楚如何停用播放声音。我尝试附加一个removeAtionWithKey声音动作,它似乎工作正常,但声音并没有停止播放。这是因为我在使用动作SpriteKit吗?

如果这个问题在这里解决而不是 import AVFoundation,那么你能给我一些例子来阻止声音播放吗?或者,如果AVFoundation在这种情况下首选导入,您能否也提供一些代码给我。

4

1 回答 1

1

这是一个如何使用 AVFoundation 的示例。

import Foundation
import AVFoundation

var backgroundMusicPlayer: AVAudioPlayer!

func playBackgroundMusic(filename: String) {

    let url = NSBundle.mainBundle().URLForResource(filename, withExtension: "mp3")

    if (url == nil) {
        print("Could not find the file \(filename)")
    }

    do { backgroundMusicPlayer = try AVAudioPlayer(contentsOfURL: url!, fileTypeHint: nil) } catch let error as NSError { print(error.debugDescription)}

    if backgroundMusicPlayer == nil {
        print("Could not create audio player")
    }

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

var Sound: AVAudioPlayer!

func playSound(filename: String) {

    let url = NSBundle.mainBundle().URLForResource(filename, withExtension: "wav")

    if (url == nil) {
        print("Could not find the file \(filename)")
    }

    do { Sound = try AVAudioPlayer(contentsOfURL: url!, fileTypeHint: nil) } catch let error as NSError { print(error.debugDescription)}

    if Sound == nil {
        print("Could not create audio player")
    }

    Sound.prepareToPlay()
    Sound.play()
}

这就是您想要实现的目标(如果我理解得很好):

@IBAction func MusicButton(sender: UIButton) {
    if backgroundMusicPlayer.playing {
        backgroundMusicPlayer.stop()
    }
    else {
        playBackgroundMusic("SomeMusicName")
    }
}

使用 AVFoundation 停止音乐就像.stop()^^!

于 2016-04-21T15:19:46.870 回答