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