-
Notifications
You must be signed in to change notification settings - Fork 68
Description
我使用SJMediaCacheServer缓存了我们的视频,一切正常的情况下没有任何问题。
但是我们的测试不走寻常路,他在播放的时候 关闭网络,这导致SJMediaCacheServer缓存本地端口无法连接,无法播放。这时候重新连网。所有的缓存都不能播放,并且AVPlayer 报错NSURLErrorDomain Code=-1004 "Could not connect to the server."。
我有试过不使用SJMediaCacheServer,不会出现上面的问题。原因可能就是本地端口在断网重连之后,没有重新打开访问本地端口。
下面是我的一些代码:
- (NSString *)videoUrl {
return self.video_url; // 这是返回原来的播放地址,使用这个地址不会出现上面的问题。
return [SJMediaCacheServer.shared proxyURLFromURL:[NSURL URLWithString:self.video_url]].absoluteString; // 这个是本地缓存的地址。会出现上面的问题。
}
// 这里的是在播放当前视频时,缓存下一个,
NSInteger nextIndex = index + 1;
if (nextIndex > -1 && nextIndex < self.dataSources.count) {
ZenvaShortPlayerModel * nextModel = self.dataSources[nextIndex];
[SJMediaCacheServer.shared prefetchWithURL:[NSURL URLWithString:nextModel.video_url] prefetchSize:(NSUInteger)1024];
}
我有试过监听网络的变化,去重新加载播放器,但都无济于事。
- (void)videoPlayerControlView:(ZenvaVideoPlayerControlView *)controlView reachabilityChanged:(ZFReachabilityStatus)status {
// [SJMediaCacheServer.shared removeAllCaches];
// ZenvaShortPlayerModel * model = self.dataSources[self.videoPlayerScrollView.currentIndex];
// [SJMediaCacheServer.shared prefetchWithURL:[NSURL URLWithString:model.video_url] prefetchSize:(NSUInteger)1024];
// self.videoPlayer.currentPlayerManager.assetURL = [NSURL URLWithString:model.videoUrl];
// [SJMediaCacheServer.shared setActive:YES]; // 文档里有这个方法,但是这个方法不存在了
// [self.videoPlayer.currentPlayerManager reloadPlayer];
}