fix(ios): ensure audio and subtitle tracks are well reported
This commit is contained in:
parent
dc8c618d41
commit
0e0ff18b27
@ -103,10 +103,14 @@ enum RCTVideoUtils {
|
|||||||
title = value as! String
|
title = value as! String
|
||||||
}
|
}
|
||||||
let language:String! = currentOption?.extendedLanguageTag ?? ""
|
let language:String! = currentOption?.extendedLanguageTag ?? ""
|
||||||
|
|
||||||
|
let selectedOption: AVMediaSelectionOption? = player.currentItem?.currentMediaSelection.selectedMediaOption(in: group!)
|
||||||
|
|
||||||
let audioTrack = [
|
let audioTrack = [
|
||||||
"index": NSNumber(value: i),
|
"index": NSNumber(value: i),
|
||||||
"title": title,
|
"title": title,
|
||||||
"language": language
|
"language": language ?? "",
|
||||||
|
"selected": currentOption?.displayName == selectedOption?.displayName
|
||||||
] as [String : Any]
|
] as [String : Any]
|
||||||
audioTracks.add(audioTrack)
|
audioTracks.add(audioTrack)
|
||||||
}
|
}
|
||||||
@ -129,10 +133,13 @@ enum RCTVideoUtils {
|
|||||||
title = value as! String
|
title = value as! String
|
||||||
}
|
}
|
||||||
let language:String! = currentOption?.extendedLanguageTag ?? ""
|
let language:String! = currentOption?.extendedLanguageTag ?? ""
|
||||||
|
let selectedOpt = player.currentItem?.currentMediaSelection
|
||||||
|
let selectedOption: AVMediaSelectionOption? = player.currentItem?.currentMediaSelection.selectedMediaOption(in: group!)
|
||||||
let textTrack = TextTrack([
|
let textTrack = TextTrack([
|
||||||
"index": NSNumber(value: i),
|
"index": NSNumber(value: i),
|
||||||
"title": title,
|
"title": title,
|
||||||
"language": language
|
"language": language,
|
||||||
|
"selected": currentOption?.displayName == selectedOption?.displayName
|
||||||
])
|
])
|
||||||
textTracks.append(textTrack)
|
textTracks.append(textTrack)
|
||||||
}
|
}
|
||||||
|
@ -1007,6 +1007,8 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
|||||||
}
|
}
|
||||||
|
|
||||||
if _videoLoadStarted {
|
if _videoLoadStarted {
|
||||||
|
let audioTracks = RCTVideoUtils.getAudioTrackInfo(_player)
|
||||||
|
let textTracks = RCTVideoUtils.getTextTrackInfo(_player).map(\.json)
|
||||||
onVideoLoad?(["duration": NSNumber(value: duration),
|
onVideoLoad?(["duration": NSNumber(value: duration),
|
||||||
"currentTime": NSNumber(value: Float(CMTimeGetSeconds(_playerItem.currentTime()))),
|
"currentTime": NSNumber(value: Float(CMTimeGetSeconds(_playerItem.currentTime()))),
|
||||||
"canPlayReverse": NSNumber(value: _playerItem.canPlayReverse),
|
"canPlayReverse": NSNumber(value: _playerItem.canPlayReverse),
|
||||||
@ -1020,8 +1022,8 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
|||||||
"height": width != nil ? NSNumber(value: height!) : "undefinded",
|
"height": width != nil ? NSNumber(value: height!) : "undefinded",
|
||||||
"orientation": orientation
|
"orientation": orientation
|
||||||
],
|
],
|
||||||
"audioTracks": RCTVideoUtils.getAudioTrackInfo(_player),
|
"audioTracks": audioTracks,
|
||||||
"textTracks": _textTracks ?? RCTVideoUtils.getTextTrackInfo(_player),
|
"textTracks": textTracks,
|
||||||
"target": reactTag as Any])
|
"target": reactTag as Any])
|
||||||
}
|
}
|
||||||
_videoLoadStarted = false
|
_videoLoadStarted = false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user