Przeglądaj źródła

1.音频播放缓存处理

huangxiaodong 1 miesiąc temu
rodzic
commit
f0584f3bed

+ 23 - 0
创维盒子/code/Class/Set/previewFile/audioPlayerViewController.m

@@ -815,6 +815,8 @@
         [self handleSomeUIFun];
     });
     
+    [self checkNetWorkStateFunByData:_allAudioDataArray];
+    
     [DFPlayer sharedPlayer].allAudioDataArray = [_allAudioDataArray mutableCopy];
 
     return [_dataArray copy];
@@ -1057,4 +1059,25 @@
         [self playOrPauseButtonDidClickFun:_playPauseBtn];
     }
 }
+
+#pragma mark 判断缓存状态
+- (void)checkNetWorkStateFunByData:(NSMutableArray*)dataArr
+{
+    //没有网络
+    if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable
+       ||[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusUnknown)
+    {
+        for (lastFileModel*model in dataArr) {
+            model.isOffLineType = YES;
+            
+        }
+    }
+    else if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWWAN
+            ||[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWiFi){
+        
+        for (lastFileModel*model in dataArr) {
+            model.isOffLineType = NO;
+        }
+    }
+}
 @end

+ 34 - 12
创维盒子/code/Class/Set/previewFile/previewAudioOrDocumentViewController.m

@@ -76,6 +76,7 @@
     
     //数据埋点
     [[netWorkManager shareInstance] DataEmbeddingPointBy:2 withEventValue:@"Music"];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange:)  name:NetWorkChangeNotification        object:nil];
 }
 
 - (void)drawAnyView{
@@ -829,18 +830,7 @@
             _curNASFileAudioMod = [[NASFileAudioModel alloc] initWithDictionary:DataDict error:nil];
         }
         
-        //没有网络
-        //if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
-        {
-            for (NASFileAudioDataModel*model in _curNASFileAudioMod.data.list) {
-                model.isOffLineType = YES;
-                //判断是否有缓存
-                BOOL isDidCacheType =  [[audioPlayListManager shareManager] checkFileToDownloadDonewithPath:model.path];
-                model.isDidCacheType = isDidCacheType;
-                HLog(@"isDidCacheType: %d-%@",isDidCacheType,model.name)
-            }
-        }
-        
+        [self checkNetWorkStateFun];
         [self getFileListFun:NO];
         [self queryShareSwitchFunFun];
     }
@@ -1240,6 +1230,38 @@
     
 }
 
+#pragma - mark - 监听网络变化
+- (void)networkStateChange:(NSNotification *)notification
+{
+    [self checkNetWorkStateFun];
+}
+
+#pragma mark 判断缓存状态
+- (void)checkNetWorkStateFun
+{
+    //没有网络
+    if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable
+       ||[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusUnknown)
+    {
+        for (NASFileAudioDataModel*model in _curNASFileAudioMod.data.list) {
+            model.isOffLineType = YES;
+            //判断是否有缓存
+            BOOL isDidCacheType =  [[audioPlayListManager shareManager] checkFileToDownloadDonewithPath:model.path];
+            model.isDidCacheType = isDidCacheType;
+            HLog(@"isDidCacheType: %d-%@",isDidCacheType,model.name)
+        }
+    }
+    else if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWWAN
+            ||[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWiFi){
+        
+        for (NASFileAudioDataModel*model in _curNASFileAudioMod.data.list) {
+            model.isOffLineType = NO;
+        }
+    }
+    
+    [self.tableView reloadData];
+}
+
 #pragma mark 文件未缓存提示弹框
 - (void)showPlayOffAndNotCacheLineFile
 {

+ 15 - 1
创维盒子/code/Class/Set/previewFile/view/audioPlayListViewCell.m

@@ -149,7 +149,7 @@
     
     NSString *filePath = _curLastFileModel.path;
     NSString *urlStr = ksharedAppDelegate.NASFileByBoxService;
-    NSString *fileUrl = [[NSString alloc] initWithFormat:@"%@getThumbnail?path=%@",urlStr,filePath];
+    //NSString *fileUrl = [[NSString alloc] initWithFormat:@"%@getThumbnail?path=%@",urlStr,filePath];
     
     
     _titleLabel.text = _curLastFileModel.name;
@@ -187,6 +187,13 @@
     //NSString *totalStr = [[NSString alloc] initWithFormat:@"%@  %@",totalSizeStr,path];
     NSString *totalStr = [[NSString alloc] initWithFormat:@"%@  %@",totalSizeStr,dateStr];
     _contentLabel.text = totalStr;
+    
+    if (_curLastFileModel.isOffLineType && !_curLastFileModel.isDownDoneType) {
+        _titleLabel.textColor = HW666666Color;
+    }
+    else{
+        [_titleLabel setTextColor:HW0A132BColor];
+    }
 }
 
 - (void)setIsPlayingType:(BOOL)isPlayingType
@@ -203,6 +210,13 @@
         [_titleLabel setTextColor:HW0A132BColor];
         [_contentLabel setTextColor:HW666666Color];
     }
+    
+    if (_curLastFileModel.isOffLineType && !_curLastFileModel.isDownDoneType) {
+        _titleLabel.textColor = HW666666Color;
+    }
+    else{
+        [_titleLabel setTextColor:HW0A132BColor];
+    }
 }
 
 @end

+ 1 - 0
创维盒子/code/NAS/recenFile/lastFileModel.h

@@ -23,6 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (nonatomic, assign) BOOL  isDownDoneType;//下载完成
 @property (nonatomic, copy) NSString*localPath;//本地缓存路径 不能直接用 每次都要重新取
+@property (nonatomic, assign) BOOL isOffLineType;//是否离线状态
 
 - (NSDictionary *)lastFileInfoFun;
 @end