feat(ios): implement onPlaybackStateChanged callback (#3307)
* chore: fix typo * feat(ios): implement onPlaybackStateChanged * docs: update onPlaybackStateChanged platforms
This commit is contained in:
@@ -107,6 +107,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
@objc var onPlaybackStalled: RCTDirectEventBlock?
|
||||
@objc var onPlaybackResume: RCTDirectEventBlock?
|
||||
@objc var onPlaybackRateChange: RCTDirectEventBlock?
|
||||
@objc var onVideoPlaybackStateChanged: RCTDirectEventBlock?
|
||||
@objc var onVideoExternalPlaybackChange: RCTDirectEventBlock?
|
||||
@objc var onPictureInPictureStatusChanged: RCTDirectEventBlock?
|
||||
@objc var onRestoreUserInterfaceForPictureInPictureStop: RCTDirectEventBlock?
|
||||
@@ -1219,8 +1220,13 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
|
||||
func handlePlaybackRateChange(player: AVPlayer, change: NSKeyValueObservedChange<Float>) {
|
||||
guard let _player = _player else { return }
|
||||
|
||||
onPlaybackRateChange?(["playbackRate": NSNumber(value: _player.rate),
|
||||
"target": reactTag as Any])
|
||||
|
||||
onVideoPlaybackStateChanged?(["isPlaying": _player.rate != 0,
|
||||
"target": reactTag as Any])
|
||||
|
||||
if _playbackStalled && _player.rate > 0 {
|
||||
onPlaybackResume?(["playbackRate": NSNumber(value: _player.rate),
|
||||
"target": reactTag as Any])
|
||||
|
||||
Reference in New Issue
Block a user