onecold 9 hónapja
szülő
commit
de2afb58ea

+ 2 - 2
AppScope/app.json5

@@ -2,8 +2,8 @@
   "app": {
     "bundleName": "com.xgplayer.ttmusic.hm",
     "vendor": "example",
-    "versionCode": 20251113,
-    "versionName": "1.6.9",
+    "versionCode": 20251115,
+    "versionName": "1.7.0",
     "icon": "$media:app_icon",
     "label": "$string:app_name",
     "multiAppMode": {

+ 14 - 0
entry/src/main/ets/common/util/Utility.ets

@@ -671,6 +671,20 @@ export class Utility {
   static async uriGetMusicAssetsFromFile(context:Context,uri:string,type:number
     ,autoParseMusicName?:boolean,originFileName?:string): Promise<VideoItem> {
     await ReqPermissionUtil.persistPermission(uri);
+    //这里加个判断,如果文件的大小是0K,这个文件是空的,直接返回
+    try {
+      const fileStat = await fs.stat(uri);
+      if (fileStat.size === 0) {
+        console.warn(`File ${uri} is empty (0KB). Returning default VideoItem.`);
+        // Return a default or empty VideoItem object
+        return new VideoItem(FileUtil.getFileName(uri), uri, uri, type, 0, '');
+      }
+    } catch (error) {
+      console.error(`Failed to get stats for file ${uri}:`, error);
+      // If we can't read the file, still return a default item
+      return new VideoItem(FileUtil.getFileName(uri), uri, uri, type, 0, '');
+    }
+
     if(StrUtil.isNotEmpty(uri)&&uri.toLowerCase().endsWith('.cue')){
       const cueItem = new VideoItem(FileUtil.getFileName(uri),uri,uri,type,0,'')
       cueItem.fileName = FileUtil.getFileName(uri)

+ 2 - 2
entry/src/main/ets/controller/AvSessionController.ets

@@ -108,7 +108,7 @@ export class AvSessionController {
       return;
     }
     BackgroundTaskManager.startContinuousTask(this.context);
-    const imagePixMap = await ImageUtil.getPixelMapFromMedia($r('app.media.ic_avatar1'));
+    const imagePixMap = await ImageUtil.getPixelMapFromMedia($r('app.media.alt'));
     let metadata: avSession.AVMetadata = {
       assetId: `${curSource.filePath}`,
       title: curSource.name,
@@ -145,7 +145,7 @@ export class AvSessionController {
           imagePixMap = await imagePathToPixelMap(pixelMapPath)
         }
       }else{
-        imagePixMap = await ImageUtil.getPixelMapFromMedia($r('app.media.ic_avatar1'));
+        imagePixMap = await ImageUtil.getPixelMapFromMedia($r('app.media.alt'));
       }
       let lyric = ''
       if(lyricContent)

+ 1 - 1
entry/src/main/ets/dialog/PlaylistDialog.ets

@@ -100,7 +100,7 @@ struct PlaylistDialogContent {
             } else {
               // 默认封面图标
               Column() {
-                Image($r('app.media.hm_music'))
+                Image($r('app.media.kp_music'))
                   .width(40)
                   .height(40)
                   .fillColor(this.isDarkMode ? Color.White : this.themeColor);

+ 8 - 8
entry/src/main/ets/dialog/RemoteDriveAccountDialog.ets

@@ -115,12 +115,12 @@ export struct RemoteDriveAccountDialog {
       // this.buildTypeSelector();
 
       // 账户封面选择
-      Column({ space: 8 }) {
-        Text('账户封面(可选)')
+      Row({ space: 8 }) {
+        Text('账户封面')
           .fontSize(14)
           .fontColor(this.isDarkMode ? '#EBEBF5' : '#666666')
           .fontWeight(FontWeight.Medium)
-          .alignSelf(ItemAlign.Start);
+          .alignSelf(ItemAlign.Center);
 
         // 封面选择区域
         Row({ space: 12 }) {
@@ -153,10 +153,10 @@ export struct RemoteDriveAccountDialog {
 
           // 操作按钮
           Column({ space: 8 }) {
-            Button('选择封面')
+            Button('选择封面(可选)')
               .width(120)
               .height(36)
-              .fontSize(12)
+              .fontSize(11)
               .fontColor(this.isDarkMode ? '#FFFFFF' : $r('app.color.text_color'))
               .backgroundColor(this.isDarkMode ? '#2C2C2E' : $r('app.color.input_background'))
               .onClick(() => {
@@ -181,7 +181,7 @@ export struct RemoteDriveAccountDialog {
         .justifyContent(FlexAlign.Start);
       }
       .width('100%')
-      .alignItems(HorizontalAlign.Start);
+      .alignItems(VerticalAlign.Center);
 
       // 账户名称
       Row({ space: 8 }) {
@@ -244,7 +244,7 @@ export struct RemoteDriveAccountDialog {
           });
       }
       .alignItems(VerticalAlign.Center);
-      this.buildHelperText('若留空将自动使用协议默认端口')
+      // this.buildHelperText('若留空将自动使用协议默认端口')
 
       if (this.driveType === RemoteDriveType.Smb) {
         // SMB 共享名称
@@ -307,7 +307,7 @@ export struct RemoteDriveAccountDialog {
           });
       }
       .alignItems(VerticalAlign.Center);
-      this.buildHelperText('从共享根开始的路径,例如 /music 或 /音乐/歌单1')
+      // this.buildHelperText('从共享根开始的路径,例如 /music 或 /音乐/歌单1')
 
       // 用户名
       Row({ space: 8 }) {

+ 1 - 1
entry/src/main/ets/pages/WebDavMainPage.ets

@@ -1046,7 +1046,7 @@ export struct WebDavMainPage {
     }
     .justifyContent(FlexAlign.Center)
     .width('100%')
-    .padding({top: this.topSafeHeight+50})
+    .padding({top: this.topSafeHeight+160})
     .layoutWeight(1)
   }
 

+ 3 - 3
entry/src/main/ets/view/LocalMusic.ets

@@ -6405,7 +6405,7 @@ export struct LocalMusic {
         if (item.name === LocalMusic.STR_LOCK_VIDEO) {
           this.showVerifyDialog()
           this.currentTitleName = '私密音频'
-          this.currentTitleCover = $r('app.media.ic_avatar1')
+          this.currentTitleCover = $r('app.media.alt')
         } else if (item.name === LocalMusic.STR_HISTORY_MUSIC) {
           this.titleName = '最近播放'
           this.currentTitleCover = $r('app.media.alt')
@@ -6423,7 +6423,7 @@ export struct LocalMusic {
         } else if (item.name === LocalMusic.STR_FAC_VIDEO) {
           this.titleName = '我的收藏'
           this.currentTitleName = '我的收藏'
-          this.currentTitleCover = $r('app.media.ic_avatar1')
+          this.currentTitleCover = $r('app.media.alt')
           //加载动画效果
           this.updateListData(this.favList)
           if (ArrayUtil.isEmpty(this.favList)) {
@@ -6435,7 +6435,7 @@ export struct LocalMusic {
         } else {
           this.currentTitleName = item.name
           this.currentPath = item.filePath
-          this.currentTitleCover = $r('app.media.ic_avatar1')
+          this.currentTitleCover = $r('app.media.alt')
           this.getSortedFiles(this.currentPath)
 
         }