【SwiftUI】SwiftUIで表示と同時に動画を再生し、ループさせる方法

まず、必要なライブラリをインポートします。

import SwiftUI
import AVKit

ここでSwiftUIはAppleが提供するUIツールキットで、AVKitはオーディオとビデオの再生をサポートするフレームワークです。

次に、SampleViewという名前のViewを作成します。

struct SampleView: View {

このViewは、動画を再生するためのプレーヤーを持っています。

private let player = AVPlayer(url: Bundle.main.url(forResource: "SampleVideo", withExtension: "mov")!)

ここでAVPlayerは動画を再生するためのオブジェクトで、Bundle.main.url(forResource:withExtension:)メソッドを使ってアプリのメインバンドルから動画ファイルのURLを取得しています。

次に、bodyプロパティを定義します。

var body: some View {

このプロパティは、Viewの内容を定義します。ここでは、VStackを使ってビデオプレーヤーを配置します。

VStack {
    VideoPlayer(player: player)

VideoPlayerAVKitが提供するビデオプレーヤーのViewで、先ほど作成したplayerを引数に取ります。

そして、onAppear()メソッドを使って、Viewが表示されたときに動画を再生します。

.onAppear() {
    player.play()

さらに、NotificationCenterを使って動画が終了したときに動画を最初から再生するように設定します。

NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: player.currentItem, queue: .main) { _ in
    player.seek(to: .zero)
    player.play()
}

これにより、動画は無限にループします。

以上が、SwiftUIを使って動画を再生し、ループさせる方法の解説です。

コイアイちゃん Avatar

この記事を書いたのは


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA