Fix for textTracks not being set before selectedTextTrack (bug found on iOS 9.3)
This commit is contained in:
parent
05d4be2d9c
commit
fa63a9ef87
@ -350,7 +350,7 @@ static NSString *const timedMetadata = @"timedMetadata";
|
|||||||
bool isNetwork = [RCTConvert BOOL:[source objectForKey:@"isNetwork"]];
|
bool isNetwork = [RCTConvert BOOL:[source objectForKey:@"isNetwork"]];
|
||||||
bool isAsset = [RCTConvert BOOL:[source objectForKey:@"isAsset"]];
|
bool isAsset = [RCTConvert BOOL:[source objectForKey:@"isAsset"]];
|
||||||
NSString *uri = [source objectForKey:@"uri"];
|
NSString *uri = [source objectForKey:@"uri"];
|
||||||
NSString *subtitleUri = _selectedTextTrack[@"uri"];
|
NSString *subtitleUri = self.selectedTextTrack[@"uri"];
|
||||||
NSString *type = [source objectForKey:@"type"];
|
NSString *type = [source objectForKey:@"type"];
|
||||||
NSDictionary *headers = [source objectForKey:@"requestHeaders"];
|
NSDictionary *headers = [source objectForKey:@"requestHeaders"];
|
||||||
|
|
||||||
@ -381,7 +381,7 @@ static NSString *const timedMetadata = @"timedMetadata";
|
|||||||
asset = [AVURLAsset URLAssetWithURL:[[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:uri ofType:type]] options:nil];
|
asset = [AVURLAsset URLAssetWithURL:[[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:uri ofType:type]] options:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_textTracks || !_selectedTextTrack) return [AVPlayerItem playerItemWithAsset:asset];
|
if (!_textTracks || !self.selectedTextTrack) return [AVPlayerItem playerItemWithAsset:asset];
|
||||||
|
|
||||||
// otherwise sideload text tracks
|
// otherwise sideload text tracks
|
||||||
AVAssetTrack *videoAsset = [asset tracksWithMediaType:AVMediaTypeVideo].firstObject;
|
AVAssetTrack *videoAsset = [asset tracksWithMediaType:AVMediaTypeVideo].firstObject;
|
||||||
@ -721,19 +721,20 @@ static NSString *const timedMetadata = @"timedMetadata";
|
|||||||
_repeat = repeat;
|
_repeat = repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSDictionary*) selectedTextTrack {
|
||||||
|
if (_textTracks) {
|
||||||
|
[self setSideloadedTextTrack];
|
||||||
|
}
|
||||||
|
else [self setStreamingTextTrack];
|
||||||
|
|
||||||
|
return _selectedTextTrack;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setSelectedTextTrack:(NSDictionary *)selectedTextTrack {
|
- (void)setSelectedTextTrack:(NSDictionary *)selectedTextTrack {
|
||||||
|
|
||||||
_selectedTextTrack = selectedTextTrack;
|
_selectedTextTrack = selectedTextTrack;
|
||||||
|
|
||||||
// when textTracks exist, we set side-loaded subtitles
|
|
||||||
if (_textTracks) {
|
|
||||||
[self setSideloadedTextTrack];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// otherwise check for subtitles in the streaming asset (.m3u8)
|
|
||||||
|
|
||||||
[self setStreamingTextTrack];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setSideloadedTextTrack {
|
- (void)setSideloadedTextTrack {
|
||||||
|
Loading…
Reference in New Issue
Block a user