SwiftUIで音声ファイルをループ再生する方法を説明する。
結論
AVAudioPlayerのインスタンスに対して.numberOfLoops = -1を設定する。
具体例
ボタンをタップすると音声ファイルがループ再生されるAppを作成する。
XcodeでTARGETS -> Build Phases -> Copy Bundle Resources を開き音声ファイルをドラッグ&ドロップする。
Copy items if needed、Create groupsをチェックしてfinish。
この音声ファイルをループ再生するには以下のコードを記述する。
- 音声ファイルのURLを取得する。
- 1を引数にAVAudioPlayerのインスタンスを生成する。
- 2に対してplay( )を実行することでファイルが再生される。
- 2に対してnumberOfLoops = -1を設定することでループ再生される。
import SwiftUI
import AVFoundation
struct ContentView: View {
var body: some View {
let ファイルURL = Bundle.main.url(forResource: "test",
withExtension: "mp3")! // ? 1
let プレイヤー = try! AVAudioPlayer(contentsOf: ファイルURL) // ? 2
Button("ボタンをタップ") {
プレイヤー.play() // ? 3
プレイヤー.numberOfLoops = -1 // ? 4
}
.buttonStyle(.borderedProminent)
}
}
まとめ
SwiftUIで音声ファイルをループ再生する方法を説明した。
コメント