mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-10 08:20:16 +00:00
added muting property and delegate callback to override video tapping
This commit is contained in:
parent
af37a48421
commit
2d1499ab4f
@ -1616,6 +1616,7 @@
|
||||
058D09B9195D04C000B7D73C /* Frameworks */,
|
||||
058D09BA195D04C000B7D73C /* Resources */,
|
||||
3B9D88CDF51B429C8409E4B6 /* Copy Pods Resources */,
|
||||
FB42E06CF915B60406431170 /* Embed Pods Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -1745,6 +1746,21 @@
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AsyncDisplayKitTests/Pods-AsyncDisplayKitTests-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
FB42E06CF915B60406431170 /* Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AsyncDisplayKitTests/Pods-AsyncDisplayKitTests-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
|
||||
@ -24,6 +24,8 @@
|
||||
@property (nonatomic, assign, readwrite) BOOL shouldAutoplay;
|
||||
@property (nonatomic, assign, readwrite) BOOL shouldAutorepeat;
|
||||
|
||||
@property (nonatomic, assign, readwrite) BOOL muted;
|
||||
|
||||
@property (atomic) NSString *gravity;
|
||||
@property (atomic) ASButtonNode *playButton;
|
||||
|
||||
@ -39,5 +41,6 @@
|
||||
@protocol ASVideoNodeDelegate <NSObject>
|
||||
@optional
|
||||
- (void)videoPlaybackDidFinish:(ASVideoNode *)videoNode;
|
||||
- (void)videoNodeWasTapped:(ASVideoNode *)videoNode;
|
||||
@end
|
||||
|
||||
|
||||
@ -20,6 +20,8 @@
|
||||
BOOL _shouldAutorepeat;
|
||||
BOOL _shouldAutoplay;
|
||||
|
||||
BOOL _muted;
|
||||
|
||||
AVAsset *_asset;
|
||||
|
||||
AVPlayerItem *_currentItem;
|
||||
@ -31,6 +33,7 @@
|
||||
ASDisplayNode *_playerNode;
|
||||
ASDisplayNode *_spinner;
|
||||
NSString *_gravity;
|
||||
|
||||
dispatch_queue_t _previewQueue;
|
||||
}
|
||||
|
||||
@ -137,6 +140,7 @@
|
||||
AVPlayerLayer *playerLayer = [[AVPlayerLayer alloc] init];
|
||||
if (!_player) {
|
||||
_player = [AVPlayer playerWithPlayerItem:[[AVPlayerItem alloc] initWithAsset:_asset]];
|
||||
_player.muted = _muted;
|
||||
}
|
||||
playerLayer.player = _player;
|
||||
playerLayer.videoGravity = [self gravity];
|
||||
@ -176,12 +180,16 @@
|
||||
|
||||
- (void)tapped
|
||||
{
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(videoNodeWasTapped:)]) {
|
||||
[self.delegate videoNodeWasTapped:self];
|
||||
} else {
|
||||
if (_shouldBePlaying) {
|
||||
[self pause];
|
||||
} else {
|
||||
[self play];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (instancetype)initWithViewBlock:(ASDisplayNodeViewBlock)viewBlock didLoadBlock:(ASDisplayNodeDidLoadBlock)didLoadBlock
|
||||
{
|
||||
@ -209,11 +217,11 @@
|
||||
[_player replaceCurrentItemWithPlayerItem:_currentItem];
|
||||
} else {
|
||||
_player = [[AVPlayer alloc] initWithPlayerItem:_currentItem];
|
||||
_player.muted = _muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)clearFetchedData
|
||||
{
|
||||
[super clearFetchedData];
|
||||
@ -231,11 +239,14 @@
|
||||
|
||||
if (_shouldAutoplay && _playerNode.isNodeLoaded) {
|
||||
[self play];
|
||||
} else if (_shouldAutoplay) {
|
||||
_shouldBePlaying = YES;
|
||||
}
|
||||
if (isVisible) {
|
||||
if (_playerNode.isNodeLoaded) {
|
||||
if (!_player) {
|
||||
_player = [AVPlayer playerWithPlayerItem:[[AVPlayerItem alloc] initWithAsset:_asset]];
|
||||
_player.muted = _muted;
|
||||
}
|
||||
((AVPlayerLayer *)_playerNode.layer).player = _player;
|
||||
}
|
||||
@ -256,7 +267,7 @@
|
||||
|
||||
[self addSubnode:playButton];
|
||||
|
||||
[_playButton addTarget:self action:@selector(play) forControlEvents:ASControlNodeEventTouchUpInside];
|
||||
[_playButton addTarget:self action:@selector(tapped) forControlEvents:ASControlNodeEventTouchUpInside];
|
||||
}
|
||||
|
||||
- (ASButtonNode *)playButton
|
||||
@ -310,6 +321,20 @@
|
||||
return _gravity;
|
||||
}
|
||||
|
||||
- (BOOL)muted
|
||||
{
|
||||
ASDN::MutexLocker l(_lock);
|
||||
|
||||
return _muted;
|
||||
}
|
||||
|
||||
- (void)setMuted:(BOOL)muted
|
||||
{
|
||||
ASDN::MutexLocker l(_lock);
|
||||
|
||||
_muted = muted;
|
||||
}
|
||||
|
||||
#pragma mark - Video Playback
|
||||
|
||||
- (void)play
|
||||
@ -330,6 +355,7 @@
|
||||
AVPlayerLayer *playerLayer = [[AVPlayerLayer alloc] init];
|
||||
if (!_player) {
|
||||
_player = [AVPlayer playerWithPlayerItem:[[AVPlayerItem alloc] initWithAsset:_asset]];
|
||||
_player.muted = _muted;
|
||||
}
|
||||
playerLayer.player = _player;
|
||||
playerLayer.videoGravity = [self gravity];
|
||||
|
||||
@ -44,7 +44,6 @@
|
||||
// Circle Drawing
|
||||
UIBezierPath *ovalPath = [UIBezierPath bezierPathWithOvalInRect: buttonBounds];
|
||||
[[UIColor colorWithWhite:0.0 alpha:0.5] setFill];
|
||||
[ovalPath stroke];
|
||||
[ovalPath fill];
|
||||
|
||||
// Triangle Drawing
|
||||
|
||||
@ -43,7 +43,6 @@
|
||||
|
||||
videoNode.backgroundColor = [UIColor lightGrayColor];
|
||||
|
||||
// videoNode.playButton = [self playButton];
|
||||
return videoNode;
|
||||
}
|
||||
|
||||
@ -61,7 +60,8 @@
|
||||
|
||||
nicCageVideo.backgroundColor = [UIColor lightGrayColor];
|
||||
nicCageVideo.shouldAutorepeat = YES;
|
||||
// nicCageVideo.playButton = [self playButton];
|
||||
nicCageVideo.shouldAutoplay = YES;
|
||||
nicCageVideo.muted = YES;
|
||||
|
||||
return nicCageVideo;
|
||||
}
|
||||
@ -79,7 +79,6 @@
|
||||
|
||||
simonVideo.backgroundColor = [UIColor lightGrayColor];
|
||||
simonVideo.shouldAutorepeat = YES;
|
||||
// simonVideo.playButton = [self playButton];
|
||||
simonVideo.shouldAutoplay = YES;
|
||||
|
||||
return simonVideo;
|
||||
@ -99,6 +98,15 @@
|
||||
return playButton;
|
||||
}
|
||||
|
||||
- (void)videoNodeWasTapped:(ASVideoNode *)videoNode
|
||||
{
|
||||
if (videoNode.player.muted == YES) {
|
||||
videoNode.player.muted = NO;
|
||||
} else {
|
||||
videoNode.player.muted = YES;
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)prefersStatusBarHidden
|
||||
{
|
||||
return YES;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user