In iOS 11, Apple added a feature to close the Video Player via a swipe gesture. Partial swiping cases viewWillDisappear to be called without viewDidDisappear which cases a black screen.
Bug happens when uri is changed for a video.
The fix:
Remove player layer before addPlayerItemObservers so _playerItemObserversSet is still set to NO if observers have already been removed.
* issue 310 - Added a new property, ignoreSilentSwitch. When true, audio will play even when the silent switch on an iOS device is set to silent. When false, the audio will toggle with the silent switch. Sets the AVAudioSession to either playback or ambient.
* Added ignoreSilentSwitch usage to example app and to readme
* Changed ignoreSilentSwitch to accept two string values, ignore and obey.
This accounts for the case where the user does not want to modify the audio session from a particular video instance. The user would not use the ignoreSilentSwitch property at all in that case.
Also, the audio session will only be updated when the video is unpaused, instead of whenever the video component has updated props. This allows for multiple videos to be on the screen, with the most recent video unpaused (aka played) being the video that has control over the audio session.
* added listener for timedMetadata event.
* added callback in RCTVideo for the timed metadata
* exposing onTimedMetadata to JS
* added forgotten method declaration
* returning array of string values
* added metadata type to the array
* added onMetadata method
* overridden onMetadata method on exoplayer2
* added format of return value from onMetadata
* added function reference in README file
- Use NSNull object in NSDictionary when type (or URI) missing from supplied
src object.
- In addition, defensively supply valid strings for URI and type from JS.