mirror of
https://github.com/yattee/yattee.git
synced 2025-12-22 20:50:12 +00:00
Settings for iOS/macOS
This commit is contained in:
31
Model/PlaybackModel.swift
Normal file
31
Model/PlaybackModel.swift
Normal file
@@ -0,0 +1,31 @@
|
||||
import CoreMedia
|
||||
import Foundation
|
||||
|
||||
final class PlaybackModel: ObservableObject {
|
||||
@Published var live = false
|
||||
@Published var stream: Stream?
|
||||
@Published var time: CMTime?
|
||||
|
||||
var aspectRatio: Double? {
|
||||
let tracks = stream?.videoAsset.tracks(withMediaType: .video)
|
||||
|
||||
guard tracks != nil else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let size: CGSize! = tracks!.first.flatMap {
|
||||
tracks!.isEmpty ? nil : $0.naturalSize.applying($0.preferredTransform)
|
||||
}
|
||||
|
||||
guard size != nil else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return size.width / size.height
|
||||
}
|
||||
|
||||
func reset() {
|
||||
stream = nil
|
||||
time = nil
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user