scaffolding hermes flow and audit logging

This commit is contained in:
2026-04-09 18:54:10 +02:00
parent e401b6dbab
commit cf5316a2c1
59 changed files with 1830 additions and 593 deletions
@@ -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)
}
}