Swift Media Player
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

51 lines
1.4 KiB

//
// Created by Marco Schmickler on 28.11.21.
// Copyright (c) 2021 Marco Schmickler. All rights reserved.
//
import Foundation
import AVKit
import SwiftUI
class SVideoModel : ObservableObject {
@Published var allItems : [MediaItem]
@Published var currentSnapshot: MediaItem
@Published var baseItem: MediaItem
// The progress through the video, as a percentage (from 0 to 1)
@Published var videoPos: Double = 0
// The duration of the video in seconds
@Published var videoDuration: Double = 0
// Whether we're currently interacting with the seek bar or doing a seek
@Published var seeking = false
@Published var paused = false
@Published var edit = false
@Published var loop = false
@Published var zoomed = false
@Published var favorite = false
@Published var speed: Float = 1.0
@Published var currentURL: URL?
@Published var scale: CGFloat = 1.0
@Published var dragOffset: CGSize = CGSize.zero
@Published var proxy: GeometryProxy?
var observer: Any?
init(allItems: [MediaItem], currentSnapshot: MediaItem, baseItem: MediaItem) {
self.allItems = allItems
self.currentSnapshot = currentSnapshot
self.baseItem = baseItem
self.favorite = baseItem.favorite
}
func currentPlayerItem() -> AVPlayerItem {
AVPlayerItem(asset: AVAsset(url: currentSnapshot.playerURL!))
}
}