web-dev-qa-db-ja.com

Swift 3サウンド再生

[OK]を私はこれを見て、ボタンがクリックされたときに音を再生するための多くの異なる方法を試してみました。

Swift 3でボタンがクリックされたときにサウンドを再生するにはどうすればよいですか?Soundsという名前のフォルダーにサウンドがあり、名前はClickSound.mp3です

16
shane

この機能の下のユーザー

 //MARK:- PLAY SOUND
func playSound() {
    let url = Bundle.main.url(forResource: "ClickSound", withExtension: "mp3")!

    do {
        player = try AVAudioPlayer(contentsOf: url)
        guard let player = player else { return }

        player.prepareToPlay()
        player.play()
    } catch let error as NSError {
        print(error.description)
    }
}

audioToolboxの最初のインポートAVFoundation

それがうまくいくことを願っています:)

18
Amit Rawat

プレーヤーが破棄されないようにし、View Controllerのプロパティで取得する必要があります

唯一の本当の問題は、プレーヤーをすぐに破壊されないプロパティまたは他の変数として保存する必要があることです。そうしないと、音がすぐに停止します。

ソース:

var player : AVAudioPlayer?

func playSound(){
        let path = Bundle.main.path(forResource: "alert", ofType:"mp3")!
        let url = URL(fileURLWithPath: path)

        do {
            let sound = try AVAudioPlayer(contentsOf: url)
            self.player = sound
            sound.numberOfLoops = 1
            sound.prepareToPlay()
            sound.play()
        } catch {
            print("error loading file")
            // couldn't load file :(
        }
}
14
Amr Lotfy

SwiftySound を使用することもできます。 Swift 3 and Swift 4。

Sound.play(file: "ClickSound.mp3")
5
Adam

これを行う簡単な方法は、ボタンを押した関数に次のコード行を追加することです(注:Spriteキットでのみ機能します)。

run(SKAction.playSoundFileNamed("ClickSound.mp3", waitForCompletion: false))

お役に立てれば :)

3
Luke Roberts