@@ -571,8 +571,8 @@ public void run() {
571571
572572 private void initializePlayerCore (ReactExoplayerView self ) {
573573 ExoTrackSelection .Factory videoTrackSelectionFactory = new AdaptiveTrackSelection .Factory ();
574- trackSelector = new DefaultTrackSelector (videoTrackSelectionFactory );
575- trackSelector .setParameters (trackSelector .buildUponParameters ()
574+ self . trackSelector = new DefaultTrackSelector (videoTrackSelectionFactory );
575+ self . trackSelector .setParameters (trackSelector .buildUponParameters ()
576576 .setMaxVideoBitrate (maxBitRate == 0 ? Integer .MAX_VALUE : maxBitRate ));
577577
578578 DefaultAllocator allocator = new DefaultAllocator (true , C .DEFAULT_BUFFER_SEGMENT_SIZE );
@@ -591,7 +591,7 @@ private void initializePlayerCore(ReactExoplayerView self) {
591591 new DefaultRenderersFactory (getContext ())
592592 .setExtensionRendererMode (DefaultRenderersFactory .EXTENSION_RENDERER_MODE_OFF );
593593 player = new SimpleExoPlayer .Builder (getContext (), renderersFactory )
594- .setTrackSelector (trackSelector )
594+ .setTrackSelector (self . trackSelector )
595595 .setBandwidthMeter (bandwidthMeter )
596596 .setLoadControl (loadControl )
597597 .build ();
@@ -1042,6 +1042,11 @@ public void run() {
10421042 private WritableArray getAudioTrackInfo () {
10431043 WritableArray audioTracks = Arguments .createArray ();
10441044
1045+ if (trackSelector == null ) {
1046+ // Likely player is unmounting so no audio tracks are available anymore
1047+ return audioTracks ;
1048+ }
1049+
10451050 MappingTrackSelector .MappedTrackInfo info = trackSelector .getCurrentMappedTrackInfo ();
10461051 int index = getTrackRendererIndex (C .TRACK_TYPE_AUDIO );
10471052 if (info == null || index == C .INDEX_UNSET ) {
0 commit comments