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);
AVPlayerItem *playerItem = nil;
if (_asset != nil) {
if (_asset.tracks.count > 0) {
playerItem = [[AVPlayerItem alloc] initWithAsset:_asset];
} else if ([_asset isKindOfClass:[AVURLAsset class]]) {
playerItem = [[AVPlayerItem alloc] initWithURL:((AVURLAsset *)_asset).URL];
}
if ([_asset isKindOfClass:[AVURLAsset class]]) {
return [[AVPlayerItem alloc] initWithURL:((AVURLAsset *)_asset).URL];
} else if (_asset != nil) {
return [[AVPlayerItem alloc] initWithAsset:_asset];
}
return playerItem;
return nil;
}
- (void)addPlayerItemObservers:(AVPlayerItem *)playerItem