mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-08 05:30:47 +00:00
[ASVideoNode] issue #1782 Placeholder images are replaced by a blank placeholder. Now checks the .URL property of the parent class as well as the .image to ensure that new placeholders aren't generated.
This commit is contained in:
parent
e55037354c
commit
062bcf3631
@ -151,7 +151,7 @@ static NSString * const kStatus = @"status";
|
|||||||
self.player = [AVPlayer playerWithPlayerItem:playerItem];
|
self.player = [AVPlayer playerWithPlayerItem:playerItem];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self.image == nil) {
|
if (self.image == nil && self.URL == nil) {
|
||||||
[self generatePlaceholderImage];
|
[self generatePlaceholderImage];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -284,7 +284,7 @@ static NSString * const kStatus = @"status";
|
|||||||
if ([change[NSKeyValueChangeNewKey] integerValue] == AVPlayerItemStatusReadyToPlay) {
|
if ([change[NSKeyValueChangeNewKey] integerValue] == AVPlayerItemStatusReadyToPlay) {
|
||||||
self.playerState = ASVideoNodePlayerStateReadyToPlay;
|
self.playerState = ASVideoNodePlayerStateReadyToPlay;
|
||||||
// If we don't yet have a placeholder image update it now that we should have data available for it
|
// If we don't yet have a placeholder image update it now that we should have data available for it
|
||||||
if (self.image == nil) {
|
if (self.image == nil && self.URL == nil) {
|
||||||
[self generatePlaceholderImage];
|
[self generatePlaceholderImage];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,9 @@
|
|||||||
ASVideoNode *simonVideoNode = self.simonVideoNode;
|
ASVideoNode *simonVideoNode = self.simonVideoNode;
|
||||||
[_rootNode addSubnode:simonVideoNode];
|
[_rootNode addSubnode:simonVideoNode];
|
||||||
|
|
||||||
|
ASVideoNode *hlsVideoNode = self.hlsVideoNode;
|
||||||
|
[_rootNode addSubnode:hlsVideoNode];
|
||||||
|
|
||||||
_rootNode.layoutSpecBlock = ^ASLayoutSpec *(ASDisplayNode * _Nonnull node, ASSizeRange constrainedSize) {
|
_rootNode.layoutSpecBlock = ^ASLayoutSpec *(ASDisplayNode * _Nonnull node, ASSizeRange constrainedSize) {
|
||||||
guitarVideoNode.layoutPosition = CGPointMake(0, 0);
|
guitarVideoNode.layoutPosition = CGPointMake(0, 0);
|
||||||
guitarVideoNode.preferredFrameSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height/3);
|
guitarVideoNode.preferredFrameSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height/3);
|
||||||
@ -55,8 +58,13 @@
|
|||||||
|
|
||||||
simonVideoNode.layoutPosition = CGPointMake(0, [UIScreen mainScreen].bounds.size.height - ([UIScreen mainScreen].bounds.size.height/3));
|
simonVideoNode.layoutPosition = CGPointMake(0, [UIScreen mainScreen].bounds.size.height - ([UIScreen mainScreen].bounds.size.height/3));
|
||||||
simonVideoNode.preferredFrameSize = CGSizeMake([UIScreen mainScreen].bounds.size.width/2, [UIScreen mainScreen].bounds.size.height/3);
|
simonVideoNode.preferredFrameSize = CGSizeMake([UIScreen mainScreen].bounds.size.width/2, [UIScreen mainScreen].bounds.size.height/3);
|
||||||
return [ASStaticLayoutSpec staticLayoutSpecWithChildren:@[guitarVideoNode, nicCageVideoNode, simonVideoNode]];
|
|
||||||
|
hlsVideoNode.layoutPosition = CGPointMake(0, [UIScreen mainScreen].bounds.size.height/3);
|
||||||
|
hlsVideoNode.preferredFrameSize = CGSizeMake([UIScreen mainScreen].bounds.size.width/2, [UIScreen mainScreen].bounds.size.height/3);
|
||||||
|
|
||||||
|
return [ASStaticLayoutSpec staticLayoutSpecWithChildren:@[guitarVideoNode, nicCageVideoNode, simonVideoNode, hlsVideoNode]];
|
||||||
};
|
};
|
||||||
|
|
||||||
[self.view addSubnode:_rootNode];
|
[self.view addSubnode:_rootNode];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +125,24 @@
|
|||||||
return simonVideoNode;
|
return simonVideoNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (ASVideoNode *)hlsVideoNode;
|
||||||
|
{
|
||||||
|
ASVideoNode *hlsVideoNode = [[ASVideoNode alloc] init];
|
||||||
|
|
||||||
|
hlsVideoNode.delegate = self;
|
||||||
|
hlsVideoNode.asset = [AVAsset assetWithURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"]];
|
||||||
|
hlsVideoNode.gravity = AVLayerVideoGravityResize;
|
||||||
|
hlsVideoNode.backgroundColor = [UIColor lightGrayColor];
|
||||||
|
hlsVideoNode.shouldAutorepeat = YES;
|
||||||
|
hlsVideoNode.shouldAutoplay = YES;
|
||||||
|
hlsVideoNode.muted = YES;
|
||||||
|
|
||||||
|
// Placeholder image
|
||||||
|
hlsVideoNode.URL = [NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/en/5/52/Testcard_F.jpg"];
|
||||||
|
|
||||||
|
return hlsVideoNode;
|
||||||
|
}
|
||||||
|
|
||||||
- (ASButtonNode *)playButton;
|
- (ASButtonNode *)playButton;
|
||||||
{
|
{
|
||||||
ASButtonNode *playButtonNode = [[ASButtonNode alloc] init];
|
ASButtonNode *playButtonNode = [[ASButtonNode alloc] init];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user