-
Notifications
You must be signed in to change notification settings - Fork 146
debugInfo
调用播放器方法getVersion获得当前的版本信息
[_player getVersion];
调用播放器属性serverAddress获取播放文件所在的服务器地址
[_player serverAddress];
调用播放器方法getMetadata后,通过查询kKSYPLYHttpAnalyzeDns关键字获得DNS解析时间
NSDictionary *meta = [_player getMetadata];
[meta objectForKey:kKSYPLYHttpAnalyzeDns];
只对http协议播放有效,其它协议的播放获取到的值为NULL
调用播放器方法getMetadata后,通过查询kKSYPLYHttpConnectTime关键字获得服务器连接时间
NSDictionary *meta = [_player getMetadata];
[meta objectForKey:kKSYPLYHttpConnectTime];
只对http协议播放有效,其它协议的播放获取到的值为NULL
调用播放器方法getMetadata后,通过查询kKSYPLYHttpFirstDataTime关键字获得客户端接收到的首个http数据包时间
NSDictionary *meta = [_player getMetadata];
[meta objectForKey:kKSYPLYHttpFirstDataTime];
只对http协议播放有效,其它协议的播放获取到的值为NULL
监听到MPMovieNaturalSizeAvailableNotification通知后,调用播放器属性naturalSize查询视频的宽高信息
_player.naturalSize.width;
_player.naturalSize.height;
播放出首个视频画面时,会发送MPMoviePlayerFirstVideoFrameRenderedNotification通知,用监听到该消息时的时间减去调用prepareToPlay方法时的时间,得到的差值即为首个视频帧的出现时间
//记录调用prepareToPlay方法时的时间
prepared_time = (long long int)([self getCurrentTime] * 1000);
[_player prepareToPlay];
//监听到MPMoviePlayerFirstVideoFrameRenderedNotification通知时,用当前时间减去prepared_time,差值即为首个视频帧的出现时间
if (MPMoviePlayerFirstVideoFrameRenderedNotification == notify.name)
{
fvr_costtime = (int)((long long int)([self getCurrentTime] * 1000) - prepared_time);
NSLog(@"first video frame show, cost time : %dms!\n", fvr_costtime);
}
播放出首个音频帧时,会发送MPMoviePlayerFirstAudioFrameRenderedNotification通知,用监听到该消息时的时间减去调用prepareToPlay方法时的时间,得到的差值即为首个音频帧的出现时间
//记录调用prepareToPlay方法时的时间
prepared_time = (long long int)([self getCurrentTime] * 1000);
[_player prepareToPlay];
//监听到MPMoviePlayerFirstAudioFrameRenderedNotification通知时,用当前时间减去prepared_time,即为首个视频帧的出现时间
if (MPMoviePlayerFirstAudioFrameRenderedNotification == notify.name)
{
far_costtime = (int)((long long int)([self getCurrentTime] * 1000) - prepared_time);
NSLog(@"first audio frame render, cost time : %dms!\n", far_costtime);
}
调用播放器属性currentPlaybackTime获取当前播放时间
_player.currentPlaybackTime;
调用播放器属性playableDuration获取当前播放文件的总时长
_player.playableDuration;
调用播放器属性duration获取当前播放文件的总时长
_player.duration;
调用播放器属性bufferEmptyCount获取从开始播放到现在缓冲的次数
_player.bufferEmptyCount;
调用播放器属性bufferEmptyDuration获取从开始播放到现在每次缓冲的时间和
_player.bufferEmptyDuration;
调用播放器属性bufferTimeMax获取允许的最大缓冲时长
_player.bufferTimeMax;
播放器中没有直接提供获取当前下载速率的方法,但是提供了获取当前下载数据大小的属性readSize(单位是Byte),通过前后两次获取该属性值,用两次的差值除以时间差,即可得到当前的下载速率
// 播放中,时间点1
NSTimeInterval mTime1 = [self getCurrentTime];
double mflowSize1 = [_player readSize];
// 播放中,当前时间,大于时间点1
NSTimeInterval mTime2 = [self getCurrentTime];
double mflowSize2 = [_player readSize];
// 下载速率
float realBitrate = (mflowSize2 - mflowSize1) / (mTime2 - mTime1);
调用播放器属性qosInfo即可获得播放的Qos信息,其中的具体含义可以查看KSYQosInfo
KSYQosInfo *info = _player.qosInfo;
重点说明:如果将shouldEnableKSYStatModule参数设置为NO,获取qosInfo将会返回nil;如果需要该信息,请务必将该参数设置为YES,或者不设置,默认值即为YES
当前缓冲了多少音频时长(单位为毫秒)
- info.audioBufferTimeLength
当前缓冲了多少视频时长(单位为毫秒)
- info.videoBufferTimeLength
当前缓冲了多少音频数据(单位为bytes)
- info.audioTotalDataSize
当前缓冲了多少视频数据(单位为bytes)
- info.videoBufferByteLength
从开播到现在,总共下载了多少音频数据(单位为bytes)
- info.audioTotalDataSize
从开播到现在,总共下载了多少音频数据(单位为bytes)
- info.videoTotalDataSize
从开播到现在,总共下载了多少数据(单位为bytes),包括音频、视频。
- info.totalDataSize
解码帧率,每秒钟从原始数据解码出来的图像的帧数
- info.videoDecodeFPS
显示帧率,每秒钟显示渲染的图像的帧数
- info.videoRefreshFPS