Open nyz110 opened 6 years ago
恢复网络后如何做的播放操作呢?
没有任何操作,再次点击播放
2018-02-01 10:52:23.738821+0800 KSYPlayerDemo[4052:587559] FFP_MSG_BUFFERING_START
2018-02-01 10:52:23.739191+0800 KSYPlayerDemo[4052:587559] player load state: 4
2018-02-01 10:52:23.739437+0800 KSYPlayerDemo[4052:587559] player start caching
2018-02-01 10:52:23.755793+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:52:23.756125+0800 KSYPlayerDemo[4052:587559] player playback state: 1
2018-02-01 10:52:23.756326+0800 KSYPlayerDemo[4052:587559] ------------------------
flushed last keyframe pts -9223372036854775808
2018-02-01 10:52:23.759892+0800 KSYPlayerDemo[4052:587559] FFP_MSG_SEEK_COMPLETE
2018-02-01 10:52:23.760292+0800 KSYPlayerDemo[4052:587559] Seek complete
2018-02-01 10:52:23.859988+0800 KSYPlayerDemo[4052:587559] FFP_MSG_BUFFERING_END
2018-02-01 10:52:23.860944+0800 KSYPlayerDemo[4052:587559] loading cost 64.232471 seconds with 4 times
2018-02-01 10:52:23.861269+0800 KSYPlayerDemo[4052:587559] player load state: 3
2018-02-01 10:52:24.026485+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:52:24.026823+0800 KSYPlayerDemo[4052:587559] player playback state: 0
2018-02-01 10:52:24.027025+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:52:24.028077+0800 KSYPlayerDemo[4052:587559] player finish state: 0
2018-02-01 10:52:24.028324+0800 KSYPlayerDemo[4052:587559] player download flow size: 7.801758 MB
2018-02-01 10:52:24.028512+0800 KSYPlayerDemo[4052:587559] buffer monitor result:
empty count: 4, lasting: 64.232471 seconds
2018-02-01 10:53:08.562944+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:53:08.563319+0800 KSYPlayerDemo[4052:587559] player playback state: 2
2018-02-01 10:53:08.563525+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:53:08.659873+0800 KSYPlayerDemo[4052:587559] debug === SDK版本:v2.9.5.5
播放器实例:0x101468b50
拉流URL:https://ks3-cn-beijing.ksyun.com/ksvsdemo/xulei_0815/Aerial%2520China%25201-libx264-640x480-800000.mp4
服务器IP:36.110.160.55
客户端IP:211.144.203.186
本地DNS IP:117.71.17.81
分辨率:(宽-高: 640-480)
已播时长:0.0s
缓存时长:30.9s
视频总长1200.0s
cache次数:64.2s/4
最大缓冲时长:2.0s
速度: 0.0 kbps
视频/音频渲染用时:1156ms/1117ms
HTTP连接用时:0ms
DNS解析用时:0ms
首包到达用时(连接建立后):195ms
音频缓冲队列长度:0.0MB
音频缓冲队列时长:0.0s
已下载音频数据量:1.0MB
视频缓冲队列长度:0.0MB
视频缓冲队列时长:0.0s
已下载视频数据量:6.4MB
已下载总数据量8.2MB
解码帧率:0.60 显示帧率:0.18
网络连通性:WIFI
2018-02-01 10:53:09.285232+0800 KSYPlayerDemo[4052:587559] FFP_MSG_BUFFERING_START
2018-02-01 10:53:09.287072+0800 KSYPlayerDemo[4052:587559] player load state: 4
2018-02-01 10:53:09.287457+0800 KSYPlayerDemo[4052:587559] player start caching
2018-02-01 10:53:09.296240+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:53:09.296559+0800 KSYPlayerDemo[4052:587559] player playback state: 1
2018-02-01 10:53:09.296762+0800 KSYPlayerDemo[4052:587559] ------------------------
flushed last keyframe pts -9223372036854775808
2018-02-01 10:53:09.321026+0800 KSYPlayerDemo[4052:587559] FFP_MSG_SEEK_COMPLETE
2018-02-01 10:53:09.322065+0800 KSYPlayerDemo[4052:587559] Seek complete
2018-02-01 10:53:09.425876+0800 KSYPlayerDemo[4052:587559] FFP_MSG_BUFFERING_END
2018-02-01 10:53:09.426324+0800 KSYPlayerDemo[4052:587559] loading cost 64.372091 seconds with 5 times
2018-02-01 10:53:09.426706+0800 KSYPlayerDemo[4052:587559] player load state: 3
2018-02-01 10:53:09.592091+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:53:09.592558+0800 KSYPlayerDemo[4052:587559] player playback state: 0
2018-02-01 10:53:09.592792+0800 KSYPlayerDemo[4052:587559] ------------------------
2018-02-01 10:53:09.593876+0800 KSYPlayerDemo[4052:587559] player finish state: 0
2018-02-01 10:53:09.594115+0800 KSYPlayerDemo[4052:587559] player download flow size: 7.801758 MB
2018-02-01 10:53:09.594303+0800 KSYPlayerDemo[4052:587559] buffer monitor result:
empty count: 5, lasting: 64.372091 seconds
尝试重置player 也无效
-(void)resetPlayerWhenPlayErr{
self.coverView.hidden = NO;
//清除之前的播放器
[self.videoPlayer reset:NO];
[self.videoPlayer stop];
// [self removePlayerObserver];
// [self.videoPlayer.view removeFromSuperview];
// self.videoPlayer = nil;
//
// //重新添加
// [self insertSubview:self.videoPlayer.view atIndex:0];
// [self.videoPlayer.view mas_makeConstraints:^(MASConstraintMaker *make) {
// make.edges.mas_equalTo(UIEdgeInsetsZero);
// }];
// [self addPlayerObserver];
// NSString *originalVideoURL = [[KSYHTTPProxyService sharedInstance] getOriginalUrl:self.videoURL];
NSString *originalVideoURL = self.videoURL;
self.videoURL = nil;
[self reloadPlayerInfo:originalVideoURL];
}
重新创建player 是可以的,之前的player 在复用的时候也无法播放其他视频
如果用同一个播放器实例播放多个视频时,在切换时的调用顺序是
[_player reset:NO];
[_player setUrl:_reloadUrl];
[_player prepareToPlay];
或者
[_player reload:_reloadUrl];
我测试这样使用没问题
不要调用stop, 调用stop后播放器会被销毁
嗯,复用的时候是这样做的。也播放不了 现在的问题是,切换网络,当前视频也播放不了,点击暂停,再点击播放无效。demo 和 自己项目里面都是这样的现象。播放中,切换飞行模式,播放失败,等一会,切换到wifi,点击播放无法播放
看样子是在播放失败后,如果先调用了一次play,然后再用reset这套操作来重新播放的话会出问题(reload没出问题)
这个我们我们后续查一下原因
你可以暂时检查一下代码逻辑,在播放失败后别直接调用play,而是用reset或者reload的方式来切换其他视频
这个有解决么?我也遇到了。楼上两位搞好了么? // [_player reload:_reloadUrl flush:YES mode:MPMovieReloadMode_Fast];//网络切换的话reload //[self.player play]; 我是刷新和play 一起的,没用。总是-1004
@lzcdgit
我解决了,复用的时候这样调用
if (是否是复用逻辑) {
//重置之前的播放信息
if (self.videoPlayer.isPlaying) {
[self.videoPlayer pause];
}
[self.videoPlayer reset:NO];
}
[self.videoPlayer setUrl:[NSURL URLWithString:playerURL]];
[self.videoPlayer prepareToPlay];
不要使用 [self.videoPlayer reload:[NSURL URLWithString:playerURL] flush:YES];
播放中切换到飞行模式,会收到播放失败的通知 当恢复网络后播放会一直播放失败 错误码-1004 console log
打印videoplayer contentURL 为nil