【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を使って動画を再生し、ループさせる方法の解説です。

coiai.netでは案件受付中です。
Vtuber、建築モデリング、EC構築、ネイティブアプリ制作、制服の制作(実は縫製業もメイン)、Vision Pro向けアプリ etc…
様々な制作開発を行っています。

ご気軽にご相談ください!

コイアイちゃんのアバター

この記事を書いたのは


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Top
Blog
Works
contact