Der Untertitelstil wirkt jetzt sofort
`textStyleRules` wird nur gelesen, wenn die Untertitelspur ausgewaehlt wird — eine laufende Einblendung zeichnet AVFoundation davon nicht neu. Genau das war der Eindruck: man stellt um, es passiert nichts, und erst wer die Untertitel aus- und wieder einschaltet, sieht die Aenderung. Dieses Aus- und Einschalten **ist** die Neuwahl. Also machen wir sie selbst, gleich nachdem der Stil gesetzt wurde. Abgewaehlt und wieder angewaehlt wird dabei dieselbe Option, nicht die erste: bei mehreren Spuren waere das ein stiller Sprachwechsel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
c681d69fcc
commit
57170b20ea
@@ -259,7 +259,26 @@ public final class AVPlayerEngine: VideoPlayerEngine {
|
||||
/// angelegt.
|
||||
public func applySubtitleStyle(_ style: SubtitleStyle) {
|
||||
subtitleStyle = style
|
||||
player.currentItem?.textStyleRules = style.textStyleRules
|
||||
guard let item = player.currentItem else { return }
|
||||
item.textStyleRules = style.textStyleRules
|
||||
|
||||
// **Und die Spur neu wählen, sonst bleibt es bei der alten Form.**
|
||||
//
|
||||
// `textStyleRules` wird nur gelesen, wenn die Untertitelspur
|
||||
// ausgewählt wird — eine laufende Einblendung zeichnet AVFoundation
|
||||
// davon nicht neu. Das war genau der Eindruck: man stellt um, es
|
||||
// passiert nichts, und erst wer die Untertitel aus- und wieder
|
||||
// einschaltet, sieht die Änderung. Das Aus- und Einschalten ist die
|
||||
// Neuwahl — also machen wir sie selbst.
|
||||
//
|
||||
// Abgewählt und wieder angewählt wird dieselbe Option, nicht die
|
||||
// erste: bei mehreren Spuren wäre das ein stiller Sprachwechsel.
|
||||
guard let group = item.asset.mediaSelectionGroup(forMediaCharacteristic: .legible),
|
||||
let gewählt = item.currentMediaSelection.selectedMediaOption(in: group)
|
||||
else { return }
|
||||
|
||||
item.select(nil, in: group)
|
||||
item.select(gewählt, in: group)
|
||||
}
|
||||
|
||||
/// Was gerade über die Leitung kommt.
|
||||
|
||||
Reference in New Issue
Block a user