【SwiftUI】効果音を鳴らす(再生、停止、ループ)

Assets.xcassetsに入れた音声ファイルを再生するには、
AVAudioPlayerのインスタンスを作り、再生・停止などの操作を行います。
音楽再生よりも、効果音の”ポン出し”に向いてそうです。

使用例です。

import SwiftUI
import AVFoundation

struct Sound {
    
    let aVAudioPlayer: AVAudioPlayer
    
    init(_ name: String) {
        self.aVAudioPlayer = try! AVAudioPlayer(data: NSDataAsset(name: name)!.data)
    }
  
    //    頭から再生
    func play(){
        aVAudioPlayer.currentTime = 0.0
        aVAudioPlayer.play()
    }
    
    func stop(){
        aVAudioPlayer.stop()
    }
    
    //    ループ再生、stop()するまで鳴り続けます
    func playLoop(){
        aVAudioPlayer.numberOfLoops = -1
        aVAudioPlayer.play()
    }
}

ちなみに、ネットからダウンロードしたフリー素材を任意のタイミングで鳴らすアプリは、
素材の再配布に該当する場合があるのでご注意ください。