SwiftUI | 音声ファイルをループ再生する方法

音声・動画

SwiftUIで音声ファイルをループ再生する方法を説明する。

結論

AVAudioPlayerのインスタンスに対して.numberOfLoops = -1を設定する。

具体例

ボタンをタップすると音声ファイルがループ再生されるAppを作成する。

XcodeでTARGETS -> Build Phases -> Copy Bundle Resources を開き音声ファイルをドラッグ&ドロップする。

Copy items if needed、Create groupsをチェックしてfinish。

この音声ファイルをループ再生するには以下のコードを記述する。

  1. 音声ファイルのURLを取得する。
  2. 1を引数にAVAudioPlayerのインスタンスを生成する。
  3. 2に対してplay( )を実行することでファイルが再生される。
  4. 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で音声ファイルをループ再生する方法を説明した。

コメント

タイトルとURLをコピーしました