scaffolding hermes flow and audit logging
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
import AVKit
|
||||
import SwiftUI
|
||||
|
||||
struct StudyVideoPlayerView: View {
|
||||
struct HermesVideoPlayerView: View {
|
||||
@ObservedObject var coordinator: PlayerCoordinator
|
||||
|
||||
var body: some View {
|
||||
@@ -9,13 +9,15 @@ final class PlayerCoordinator: ObservableObject {
|
||||
@Published var isPlaying = false
|
||||
@Published var playbackPositionMs: Int = 0
|
||||
|
||||
init(previewURL: URL = URL(string: "https://cdn.example.com/hermes/sample-event/master.m3u8")!) {
|
||||
self.player = AVPlayer(url: previewURL)
|
||||
init() {
|
||||
self.player = AVPlayer()
|
||||
self.player.actionAtItemEnd = .pause
|
||||
}
|
||||
|
||||
func prepareForPreview() {
|
||||
player.seek(to: .zero)
|
||||
func prepareForPreview(url: URL, startTimeMs: Int = 0) {
|
||||
player.replaceCurrentItem(with: AVPlayerItem(url: url))
|
||||
let startTime = CMTime(seconds: Double(startTimeMs) / 1_000.0, preferredTimescale: 1_000)
|
||||
player.seek(to: startTime)
|
||||
player.play()
|
||||
isPlaying = true
|
||||
}
|
||||
@@ -30,8 +32,7 @@ final class PlayerCoordinator: ObservableObject {
|
||||
isPlaying = false
|
||||
}
|
||||
|
||||
func restart() {
|
||||
player.seek(to: .zero)
|
||||
play()
|
||||
func restart(url: URL, startTimeMs: Int = 0) {
|
||||
prepareForPreview(url: url, startTimeMs: startTimeMs)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user