@@ -1647,6 +1647,50 @@ export class PlaybackManager {
16471647 return index !== - 1 && self . isSubtitleStreamExternal ( index , player ) ;
16481648 } ;
16491649
1650+ /**
1651+ * Gets the current subtitle track events in a normalized format.
1652+ * This method attempts to get subtitle events from either:
1653+ * 1. The player's getCurrentTrackEvents method (for Jellyfin events)
1654+ * 2. The player's getTextTracks method (for VTT cues)
1655+ *
1656+ * @param {Object } player - The player instance to get subtitle events from
1657+ * @returns {Array<{startTime: number, endTime: number, text: string}>|null } An array of normalized subtitle events or null if none found
1658+ */
1659+ self . getCurrentSubtitleTrackEvents = function ( player ) {
1660+ player = player || self . _currentPlayer ;
1661+
1662+ // Try to get events using the new method
1663+ if ( player && player . getCurrentTrackEvents ) {
1664+ const events = player . getCurrentTrackEvents ( ) ;
1665+ if ( events && events . length ) {
1666+ // Convert ticks to seconds format
1667+ return events . map ( event => ( {
1668+ startTime : event . StartPositionTicks / TICKS_PER_SECOND ,
1669+ endTime : event . EndPositionTicks / TICKS_PER_SECOND ,
1670+ text : event . Text || ''
1671+ } ) ) ;
1672+ }
1673+ }
1674+
1675+ // Try to get text tracks using the player's getTextTracks method
1676+ if ( player && player . getTextTracks ) {
1677+ const textTracks = player . getTextTracks ( ) ;
1678+ if ( textTracks && textTracks . length > 0 ) {
1679+ const activeTrack = textTracks [ 0 ] ;
1680+ if ( activeTrack && activeTrack . cues && activeTrack . cues . length > 0 ) {
1681+ // Convert VTTCues to our format
1682+ return Array . from ( activeTrack . cues ) . map ( cue => ( {
1683+ startTime : cue . startTime ,
1684+ endTime : cue . endTime ,
1685+ text : cue . text || ''
1686+ } ) ) ;
1687+ }
1688+ }
1689+ }
1690+
1691+ return null ;
1692+ } ;
1693+
16501694 self . seek = function ( ticks , player ) {
16511695 ticks = Math . max ( 0 , ticks ) ;
16521696
0 commit comments