ZFPlayer icon indicating copy to clipboard operation
ZFPlayer copied to clipboard

抖音样式(Douyin style) 播放闪烁

Open Lucifer0103 opened this issue 4 years ago • 18 comments

3.3.1版本Demo, TableView 抖音样式, 滑动播放视频会 闪烁一下, 我有看到#567有人提问这个问题, 但是没有解决方案. 所有请问下如何才能解决这个问题, 或者是什么原因导致的? . 请望回复, 谢谢

Lucifer0103 avatar Apr 15 '20 08:04 Lucifer0103

是的,闪烁一下,怎么修复

chenhengstar avatar Apr 16 '20 10:04 chenhengstar

不知道, 有个 ZFPlayerPresentView 颜色为黑色, 就会有个闪烁效果. 如果设置为透明, 就会导致背景图暴露出来.

Lucifer0103 avatar Apr 23 '20 00:04 Lucifer0103

同问, 闪烁一下, 怎么修复.

VicDodgson avatar May 06 '20 09:05 VicDodgson

找到个方法临时解决下, 把 ZFPlayerControlView 对象 的属性 effectView 置为空视图

VicDodgson avatar May 06 '20 12:05 VicDodgson

这个问题了两年了 还没有大佬有解决方案吗....

fangwei520 avatar May 25 '20 12:05 fangwei520

我也遇到这个问题了

bluerainxty avatar Jun 02 '20 07:06 bluerainxty

同问

CoderSXP avatar Jun 17 '20 08:06 CoderSXP

同问,抖音tableview 闪一下的问题@作者大大

PZXforXcode avatar Jun 30 '20 09:06 PZXforXcode

这个问题我今天研究出来了,在ZFDouYinControlView.m里 WeChatc32f206185ea2099cce69b214e792513 作者是在这里判断coverimage显示隐藏的 /// 加载状态改变

  • (void)videoPlayer:(ZFPlayerController *)videoPlayer loadStateChanged:(ZFPlayerLoadState)state { // if (state == ZFPlayerLoadStatePrepare) { // self.coverImageView.hidden = NO; // } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { // self.coverImageView.hidden = YES; // self.effectView.hidden = NO; // } if ((state == ZFPlayerLoadStateStalled || state == ZFPlayerLoadStatePrepare) && videoPlayer.currentPlayerManager.isPlaying) { [self.sliderView startAnimating]; } else { [self.sliderView stopAnimating]; } } 改到播放状态显示隐藏 //播放状态改变

  • (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state{

    if (state == ZFPlayerLoadStatePrepare) { self.coverImageView.hidden = NO; } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { self.coverImageView.hidden = YES; self.effectView.hidden = NO; } }

PZXforXcode avatar Jul 01 '20 06:07 PZXforXcode

这个问题我今天研究出来了,在ZFDouYinControlView.m里 WeChatc32f206185ea2099cce69b214e792513 作者是在这里判断coverimage显示隐藏的 /// 加载状态改变

  • (void)videoPlayer:(ZFPlayerController *)videoPlayer loadStateChanged:(ZFPlayerLoadState)state { // if (state == ZFPlayerLoadStatePrepare) { // self.coverImageView.hidden = NO; // } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { // self.coverImageView.hidden = YES; // self.effectView.hidden = NO; // } if ((state == ZFPlayerLoadStateStalled || state == ZFPlayerLoadStatePrepare) && videoPlayer.currentPlayerManager.isPlaying) { [self.sliderView startAnimating]; } else { [self.sliderView stopAnimating]; } } 改到播放状态显示隐藏 //播放状态改变
  • (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state{ if (state == ZFPlayerLoadStatePrepare) { self.coverImageView.hidden = NO; } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { self.coverImageView.hidden = YES; self.effectView.hidden = NO; } }

这个解决方案有效。

qzytcl avatar Jul 17 '20 03:07 qzytcl

@PZXforXcode @qzytcl (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state{ if (state == ZFPlayerLoadStatePrepare) { self.coverImageView.hidden = NO; } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { self.coverImageView.hidden = YES; self.effectView.hidden = NO; } } ZFPlayerPlaybackState不能和ZFPlayerLoadStatePrepare比较啊

bluerainxty avatar Jul 18 '20 06:07 bluerainxty

@PZXforXcode @qzytcl (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state{ if (state == ZFPlayerLoadStatePrepare) { self.coverImageView.hidden = NO; } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { self.coverImageView.hidden = YES; self.effectView.hidden = NO; } } ZFPlayerPlaybackState不能和ZFPlayerLoadStatePrepare比较啊 按这样写完,又出现更严重的新Bug,背景图会暴露出来

zuoyou1314 avatar Jul 20 '20 03:07 zuoyou1314

@PZXforXcode @qzytcl (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state{ if (state == ZFPlayerLoadStatePrepare) { self.coverImageView.hidden = NO; } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { self.coverImageView.hidden = YES; self.effectView.hidden = NO; } } ZFPlayerPlaybackState不能和ZFPlayerLoadStatePrepare比较啊

image 我感觉最主要的原因是这里 蒙版 和 背景图 隐藏的问题, 我只把这里的代码屏蔽了就能解决问题。

qzytcl avatar Jul 20 '20 03:07 qzytcl

谢谢 大兄弟

------------------ 原始邮件 ------------------ 发件人: "中文名字"<[email protected]>; 发送时间: 2020年7月20日(星期一) 中午11:23 收件人: "renzifeng/ZFPlayer"<[email protected]>; 抄送: "方子龙丶"<[email protected]>; "Comment"<[email protected]>; 主题: Re: [renzifeng/ZFPlayer] 抖音样式(Douyin style) 播放闪烁 (#970)

@PZXforXcode @qzytcl (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state{ if (state == ZFPlayerLoadStatePrepare) { self.coverImageView.hidden = NO; } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { self.coverImageView.hidden = YES; self.effectView.hidden = NO; } } ZFPlayerPlaybackState不能和ZFPlayerLoadStatePrepare比较啊

我感觉最主要的原因是这里 蒙版 和 背景图 隐藏的问题, 我只把这里的代码屏蔽了就能解决问题。 — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

fangwei520 avatar Jul 21 '20 12:07 fangwei520

@PZXforXcode @qzytcl (void)videoPlayer:(ZFPlayerController *)videoPlayer playStateChanged:(ZFPlayerPlaybackState)state{ if (state == ZFPlayerLoadStatePrepare) { self.coverImageView.hidden = NO; } else if (state == ZFPlayerLoadStatePlaythroughOK || state == ZFPlayerLoadStatePlayable) { self.coverImageView.hidden = YES; self.effectView.hidden = NO; } } ZFPlayerPlaybackState不能和ZFPlayerLoadStatePrepare比较啊

大哥找到好的解决方法了吗?

liubang0909 avatar Aug 05 '20 06:08 liubang0909

func videoPlayer(_ videoPlayer: ZFPlayerController, currentTime: TimeInterval, totalTime: TimeInterval) { coverImageView.isHidden = currentTime > 0 } 这样似乎可以

Weang avatar Jan 11 '21 07:01 Weang

ZFAVPlayerManager -> initializePlayer() -> 加一句 presentView.backgroundColor = [UIColor clearColor]; 效果更佳

wfs498121294 avatar Apr 19 '22 08:04 wfs498121294

Version 4.0.3

我遇到的问题是封面图切换到视频之间会闪烁一下黑屏,目前找到的解决方法:

ZFAVPlayerManager *playerManager = [[ZFAVPlayerManager alloc] init];
playerManager.view.backgroundColor = [UIColor clearColor];

希望能帮助到各位大佬。

Andy0570 avatar Jun 08 '22 02:06 Andy0570