Merge remote-tracking branch 'upstream/master' into implement-ios-caching

This commit is contained in:
Laurin Quast 2018-08-01 00:11:35 +02:00
commit 9f2cb8f92d
2 changed files with 24 additions and 26 deletions

View File

@ -31,7 +31,7 @@ yarn add react-native-video
<details> <details>
<summary>iOS</summary> <summary>iOS</summary>
Run `react-native link` to link the react-native-video library. Run `react-native link react-native-video` to link the react-native-video library.
If you would like to allow other apps to play music over your video component, add: If you would like to allow other apps to play music over your video component, add:
@ -79,9 +79,7 @@ end
<details> <details>
<summary>tvOS</summary> <summary>tvOS</summary>
Run `react-native link` to link the react-native-video library. `react-native link react-native-video` doesnt work properly with the tvOS target so we need to add the library manually.
`react-native link` doesnt work properly with the tvOS target so we need to add the library manually.
First select your project in Xcode. First select your project in Xcode.
@ -103,7 +101,7 @@ Select RCTVideo-tvOS
<details> <details>
<summary>Android</summary> <summary>Android</summary>
Run `react-native link` to link the react-native-video library. Run `react-native link react-native-video` to link the react-native-video library.
Or if you have trouble, make the following additions to the given files manually: Or if you have trouble, make the following additions to the given files manually:

View File

@ -13,6 +13,8 @@ static NSString *const readyForDisplayKeyPath = @"readyForDisplay";
static NSString *const playbackRate = @"rate"; static NSString *const playbackRate = @"rate";
static NSString *const timedMetadata = @"timedMetadata"; static NSString *const timedMetadata = @"timedMetadata";
static int const RCTVideoUnset = -1;
@implementation RCTVideo @implementation RCTVideo
{ {
AVPlayer *_player; AVPlayer *_player;
@ -848,7 +850,7 @@ static NSString *const timedMetadata = @"timedMetadata";
} }
} }
int selectedTrackIndex = -1; int selectedTrackIndex = RCTVideoUnset;
if ([type isEqualToString:@"disabled"]) { if ([type isEqualToString:@"disabled"]) {
// Do nothing. We want to ensure option is nil // Do nothing. We want to ensure option is nil
@ -877,16 +879,11 @@ static NSString *const timedMetadata = @"timedMetadata";
selectedTrackIndex = index; selectedTrackIndex = index;
} }
} }
} } else { // type "system"
// user's selected language might not be available, or system defaults have captions enabled
if (selectedTrackIndex == -1 || [type isEqualToString:@"default"]) {
CFArrayRef captioningMediaCharacteristics = MACaptionAppearanceCopyPreferredCaptioningMediaCharacteristics(kMACaptionAppearanceDomainUser); CFArrayRef captioningMediaCharacteristics = MACaptionAppearanceCopyPreferredCaptioningMediaCharacteristics(kMACaptionAppearanceDomainUser);
NSArray *captionSettings = (__bridge NSArray*)captioningMediaCharacteristics; NSArray *captionSettings = (__bridge NSArray*)captioningMediaCharacteristics;
if ([captionSettings containsObject:AVMediaCharacteristicTranscribesSpokenDialogForAccessibility]) { if ([captionSettings containsObject:AVMediaCharacteristicTranscribesSpokenDialogForAccessibility]) {
// iterate through the textTracks to find a matching option, or default to the first object. selectedTrackIndex = 0; // If we can't find a match, use the first available track
selectedTrackIndex = 0;
NSString *systemLanguage = [[NSLocale preferredLanguages] firstObject]; NSString *systemLanguage = [[NSLocale preferredLanguages] firstObject];
for (int i = 0; i < textTracks.count; ++i) { for (int i = 0; i < textTracks.count; ++i) {
NSDictionary *currentTextTrack = [textTracks objectAtIndex:i]; NSDictionary *currentTextTrack = [textTracks objectAtIndex:i];
@ -899,7 +896,10 @@ static NSString *const timedMetadata = @"timedMetadata";
} }
for (int i = firstTextIndex; i < _player.currentItem.tracks.count; ++i) { for (int i = firstTextIndex; i < _player.currentItem.tracks.count; ++i) {
BOOL isEnabled = i == selectedTrackIndex + firstTextIndex; BOOL isEnabled = NO;
if (selectedTrackIndex != RCTVideoUnset) {
isEnabled = i == selectedTrackIndex + firstTextIndex;
}
[_player.currentItem.tracks[i] setEnabled:isEnabled]; [_player.currentItem.tracks[i] setEnabled:isEnabled];
} }
} }