-
Notifications
You must be signed in to change notification settings - Fork 146
liveDelay
Franken Zeng edited this page Jul 27, 2017
·
9 revisions
因为网络抖动等原因,直接播放直播流,会出现延时越来越大的情况。金山云播放SDK特提供延时控制,可以保证观众和主播端画面固定的延时。
@property NSTimeInterval bufferTimeMax
具体参见bufferTimeMax。
播放过程中支持设置,设置后立即生效
_player.bufferTimeMax = 5;
-
bufferTimeMax设置为播放直播流时的最大缓冲时长
-
该设置是在直播延时和卡顿之间的一个折中方案
-
如果不进行缓冲或者缓冲特别小,当网络发生抖动时,直播会频繁的出现卡顿
-
如果缓冲过大或者将所有数据全部缓冲,当直播服务器端缓冲的数据过多时在开播后不会进行追赶,导致直播延迟变高
-
设置bufferTimeMax后,当缓冲时长小于设置的值时,不会进行任何操作,正常播放。当缓冲的时长超过设置的值时,将会丢弃旧的数据进行追赶,使直播的延时控制在bufferTimeMax的值之内
请见wiki,如果HLS播放时没有正确设置bufferTimeMax,将导致严重的观看卡顿。
直播过程中,需要开发者在播放器上层自己监控播放卡顿情况,如何获取卡顿信息请见wiki。
- 延时扩大阈值
直播观看过程中,如果发现频繁的卡顿(此时观众网络环境比较差,或者下行带宽不足),建议适量扩大bufferTimeMax。
可以设置一个阈值,在一定播放时间内,卡顿系数超过阈值则扩大bufferTimeMax。
例如1分钟出现3次(含)以上,则将bufferTimeMax增加5秒。
- 关闭延时追赶
如果出现严重的卡顿,则建议关闭延时追赶。此时需要设置一个卡顿率红线,超过红线则关闭追赶。
_player.bufferTimeMax = 0