Prevent UI blocking caused by accessing the AVAsset's 'tracks' property on the UI thread

This commit is contained in:
Eric Jensen
2016-04-26 19:42:05 -07:00
parent f7985d2d26
commit e3817ac42d

View File

@@ -99,17 +99,13 @@ static NSString * const kStatus = @"status";
{ {
ASDN::MutexLocker l(_videoLock); ASDN::MutexLocker l(_videoLock);
AVPlayerItem *playerItem = nil; if ([_asset isKindOfClass:[AVURLAsset class]]) {
return [[AVPlayerItem alloc] initWithURL:((AVURLAsset *)_asset).URL];
if (_asset != nil) { } else if (_asset != nil) {
if (_asset.tracks.count > 0) { return [[AVPlayerItem alloc] initWithAsset:_asset];
playerItem = [[AVPlayerItem alloc] initWithAsset:_asset];
} else if ([_asset isKindOfClass:[AVURLAsset class]]) {
playerItem = [[AVPlayerItem alloc] initWithURL:((AVURLAsset *)_asset).URL];
}
} }
return playerItem; return nil;
} }
- (void)addPlayerItemObservers:(AVPlayerItem *)playerItem - (void)addPlayerItemObservers:(AVPlayerItem *)playerItem