import Foundation /// Eine wählbare Ton- oder Untertitelspur. /// /// Bewusst getrennt von den Spuren, die der Server meldet: VLCKit und /// AVPlayer nummerieren selbst, und ihre Nummern stimmen mit denen des Servers /// nicht überein. `engineIdentifier` hält fest, wie die laufende Engine die /// Spur nennt, `serverStreamID`, wie der Server sie nennt. public struct MediaTrack: Sendable, Equatable, Identifiable { public enum Kind: Sendable, Equatable { case audio, subtitle } public let id: String public let kind: Kind public let displayName: String public let languageCode: String? public let serverStreamID: Int? /// Die Nummer, unter der der laufende Engine die Spur führt. public let engineIdentifier: Int? public let isForced: Bool public init( id: String, kind: Kind, displayName: String, languageCode: String? = nil, serverStreamID: Int? = nil, engineIdentifier: Int? = nil, isForced: Bool = false ) { self.id = id self.kind = kind self.displayName = displayName self.languageCode = languageCode self.serverStreamID = serverStreamID self.engineIdentifier = engineIdentifier self.isForced = isForced } }