From 9ad11dd5698c256b913ca5d7ec4086e427659610 Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Wed, 20 Jun 2018 15:26:24 -0700 Subject: [PATCH 1/3] Avoid crash when text track doesn't have a title or language --- ios/RCTVideo.m | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ios/RCTVideo.m b/ios/RCTVideo.m index d2cc3114..5fd921cd 100644 --- a/ios/RCTVideo.m +++ b/ios/RCTVideo.m @@ -702,13 +702,16 @@ static NSString *const timedMetadata = @"timedMetadata"; mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible]; for (int i = 0; i < group.options.count; ++i) { AVMediaSelectionOption *currentOption = [group.options objectAtIndex:i]; - NSString *title = [[[currentOption commonMetadata] - valueForKey:@"value"] - objectAtIndex:0]; + NSString *title = @""; + NSArray *values = [[currentOption commonMetadata] valueForKey:@"value"]; + if (values.count > 0) { + title = [values objectAtIndex:0]; + } + NSString *language = [currentOption extendedLanguageTag] ? [currentOption extendedLanguageTag] : @""; NSDictionary *textTrack = @{ @"index": [NSNumber numberWithInt:i], @"title": title, - @"language": [currentOption extendedLanguageTag] + @"language": language }; [textTracks addObject:textTrack]; } From e684ba65b6bbad65a4472c535b758ebfed57a628 Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Wed, 20 Jun 2018 15:34:36 -0700 Subject: [PATCH 2/3] Fix crash when selectedTextTrack is null or undefined --- .../exoplayer/ReactExoplayerViewManager.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java index e204a4e7..7c41db58 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java @@ -126,10 +126,14 @@ public class ReactExoplayerViewManager extends ViewGroupManager Date: Wed, 20 Jun 2018 15:46:04 -0700 Subject: [PATCH 3/3] Return empty string instead of null if text track title or language are not set --- .../java/com/brentvatne/exoplayer/ReactExoplayerView.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 04c4bb2c..3d4702fb 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -520,9 +520,9 @@ class ReactExoplayerView extends FrameLayout implements Format format = groups.get(i).getFormat(0); WritableMap textTrack = Arguments.createMap(); textTrack.putInt("index", i); - textTrack.putString("title", format.id); + textTrack.putString("title", format.id != null ? format.id : ""); textTrack.putString("type", format.sampleMimeType); - textTrack.putString("language", format.language); + textTrack.putString("language", format.language != null ? format.language : ""); textTracks.pushMap(textTrack); } return textTracks;