Ver Fonte

增加设置默认排序功能
时间排序修复为 添加时间排序
倍数播放的UI修改
讨论组的群号复制功能

onecold há 1 ano atrás
pai
commit
68f0e01a68

+ 4 - 0
entry/src/main/ets/common/constants/CommonConstants.ets

@@ -81,6 +81,10 @@ export class CommonConstants {
     '.asf','.m2ts','.m4b','.mts','.rm','.wtv','.dts','.av3a','.dsd']
 
 
+  // 倍数格式支持列表
+  public static video_speed_list: number[] = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 3]
+  static readonly SORT_ARRAY = ["按艺术家升序", "按艺术家降序", "按专辑升序", "按专辑降序", "按名称升序", "按名称降序", "按添加时间升序",
+  "按添加时间降序"]
 
   //德本的接口调用微信支付下单接口返回的支付交易会话ID,该值有效期为2小时。
   static readonly WX_PAY_API: string = "https://pay.ss5.xyz/wechat/prepay"

+ 43 - 2
entry/src/main/ets/common/util/Utility.ets

@@ -70,6 +70,21 @@ export class Utility {
     }
   }
 
+  static optimizedFormat(speed: number): string {
+    if (speed) {
+      const str = speed.toFixed(2);
+      let end = str.length;
+      while (end > 0 && (str[end - 1] === '0' || str[end - 1] === '.')) {
+        end--;
+        if (str[end] === '.') {
+          break;
+        }
+      }
+      return str.slice(0, end || 1) + 'x';
+    } else {
+      return '1x'
+    }
+  }
 
   static  isHaoOpenTime():boolean{
     const currentDate = new Date();
@@ -599,7 +614,10 @@ export class Utility {
         // let videoTime = stat.ctime
 
         let fileSize = Utility.formatFSize(videoSize)
-        let cTime = Utility.getFormatDateStr(stat.mtime,'yyyy-MM-dd HH:mm')
+        //按照添加时间
+        let addTime = Utility.getFormatDateStr(new Date().getTime(),'yyyy-MM-dd HH:mm');
+        console.info('onecold asset addTime: ', addTime);
+        // let cTime = Utility.getFormatDateStr(stat.mtime,'yyyy-MM-dd HH:mm')
 
         console.info('asset stat.ctime: ', stat.ctime);
 
@@ -675,7 +693,7 @@ export class Utility {
         if(musicName==undefined)
           musicName = file.name
 
-        item = new VideoItem(musicName,uri ,uri,type,videoSize,cTime,undefined,fileSize,
+        item = new VideoItem(musicName,uri ,uri,type,videoSize,addTime,undefined,fileSize,
           imagePath,artist,album,file.name)
         item.isFav = 0;
 
@@ -1040,6 +1058,11 @@ export class Utility {
     const collator = new Intl.Collator("zh-CN", options);
 
     list.sort((a, b) => {
+      const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+      if (typeOrder !== 0) {
+        return typeOrder;
+      }
+
       const partsA = extractParts(a.name);
       const partsB = extractParts(b.name);
 
@@ -1062,6 +1085,10 @@ export class Utility {
     const collator = new Intl.Collator("zh-CN", options);
 
     list.sort((a, b) => {
+      const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+      if (typeOrder !== 0) {
+        return typeOrder;
+      }
       const partsA = extractParts(a.name);
       const partsB = extractParts(b.name);
 
@@ -1127,4 +1154,18 @@ function fetchAlbumCover(avMetadataExtractor: media.AVMetadataExtractor): Promis
        avMetadataExtractor.release();
     });
   });
+}
+
+//排序类型
+function getTypeOrder(type: number) {
+  switch (type) {
+    case CommonConstants.TYPE_IS_DIR:
+      return 1; // First
+    case CommonConstants.TYPE_IS_CSJAD:
+      return 2; // Middle
+    case CommonConstants.TYPE_LOCAL:
+      return 3; // Last
+    default:
+      return 4; // Unknown types, if any, go last
+  }
 }

+ 7 - 6
entry/src/main/ets/pages/AboutPage.ets

@@ -70,7 +70,7 @@ export struct AboutPage{
               });
             })
 
-          Button('加入讨论组', { type: ButtonType.Capsule, stateEffect: false })
+          Button('加入讨论组:685109858', { type: ButtonType.Capsule, stateEffect: false })
             .width('70%')
             .height(55)
             .margin({top:50,bottom:20})
@@ -80,13 +80,14 @@ export struct AboutPage{
               pressed: { opacity: 0.6 } // 按压反馈
             })
             .onClick(()=>{
-
+              ToastUtil.showToast('复制群号成功!')
+              Utility.copyText('685109858')
               // https://xgplayer.com/index_files/ttqqq.jpg
 
-              router.pushUrl({
-                url: 'pages/WebIndex',
-                params: { titleName: '加入讨论组', webUrl:'https://xgplayer.com/index_files/ttqqq.jpg' }
-              });
+              // router.pushUrl({
+              //   url: 'pages/WebIndex',
+              //   params: { titleName: '加入讨论组', webUrl:'https://xgplayer.com/index_files/ttqqq.jpg' }
+              // });
             })
 
           Button('用户反馈', { type: ButtonType.Capsule, stateEffect: false })

+ 43 - 0
entry/src/main/ets/pages/SettingPage.ets

@@ -20,10 +20,13 @@ export struct SettingPage {
   @State isMediacodec: boolean = false //是否启用硬件解码
   @State isMusicMemoryPlay: boolean = false //是否启用记忆播放
   @State isMusicBGCover: boolean = true //播放背景随封面
+  @State sortType: number = 4 //默认排序方式
   @State showCoverApiDialog: boolean = false
   @State tempCoverApiUrl: string = ''
   @State coverApiUrl: string = PreferencesUtil.getStringSync('COVER_API', 'https://lrc.ss5.xyz/cover')
   @State apiDialogType: 'lyric' | 'cover' = 'lyric'
+
+  static readonly SORT_TYPE: string = 'musicSortType';
   static readonly IS_BGPLAY_OPEN: string = 'isBgPlayOpen';
   static readonly IS_AUTO_RATATE: string = 'isAutoRatate';
   static readonly iS_MEMORY_PLAY: string = 'isMemoryPlay';
@@ -105,6 +108,7 @@ export struct SettingPage {
 
   // 组件生命周期
   aboutToAppear() {
+    this.sortType  = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
     this.isBgPlayOpen = PreferencesUtil.getBooleanSync(SettingPage.IS_BGPLAY_OPEN, true)
     this.isAutoRatate = PreferencesUtil.getBooleanSync(SettingPage.IS_AUTO_RATATE, true)
     this.isMemoryPlay = PreferencesUtil.getBooleanSync(SettingPage.iS_MEMORY_PLAY, true)
@@ -161,6 +165,44 @@ export struct SettingPage {
         .width('100%')
         .height(55)
 
+        Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
+        Row() {
+          Image($r('app.media.kp_music_nor'))
+            .width(22)
+            .height(22)
+            .alignSelf(ItemAlign.Center)
+            .margin({ left: 28 })
+          Text('默认排序模式')
+            .margin({ left: 10, right: 20 })
+            .fontSize(15)
+            .fontColor(Color.Gray)
+            .fontWeight(480)
+          Blank()
+          Select([//默认排序模式
+            { value: CommonConstants.SORT_ARRAY[0] },
+            { value: CommonConstants.SORT_ARRAY[1] },
+            { value: CommonConstants.SORT_ARRAY[2] },
+            { value: CommonConstants.SORT_ARRAY[3] },
+            { value: CommonConstants.SORT_ARRAY[4] },
+            { value: CommonConstants.SORT_ARRAY[5] },
+            { value: CommonConstants.SORT_ARRAY[6] },
+            { value: CommonConstants.SORT_ARRAY[7] }])
+            .font({ size: 15, weight: FontWeight.Medium })
+            .fontColor(Color.Gray)
+            .margin({right:28})
+            .selected(this.sortType)
+            .value(CommonConstants.SORT_ARRAY[this.sortType])
+            .onSelect(async (_index: number, text?: string | undefined) => {
+              this.sortType = _index
+              PreferencesUtil.put(SettingPage.SORT_TYPE, this.sortType)
+            })
+
+
+        }
+        .width('100%')
+        .height(55)
+
+
         Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
         Row() {
           Image($r('app.media.kp_music_nor'))
@@ -189,6 +231,7 @@ export struct SettingPage {
         .width('100%')
         .height(55)
 
+
         Line().width('100%').height(0.3).backgroundColor($r('app.color.index_tab_unselected_font_color'))
 
         // API设置(合并标题)

+ 3 - 3
entry/src/main/ets/pages/VipPage.ets

@@ -54,10 +54,10 @@ export  struct  VipPage{
   static readonly IS_AGREE: string = 'isAgree';
   static readonly FOEVEER_DATE: string = 'forever';
   @State params: object = router.getParams()
-  @State payPrice:number = 19.8 //9是一个  19是一年  19是永久赞助
+  @State payPrice:number = 38.8 //9是一个  19是一年  19是永久赞助
   static readonly TYPE_MONTH: number = 9.8;
   static readonly TYPE_YEAR: number = 19
-  static readonly TYPE_FOREVER: number = 19.8
+  static readonly TYPE_FOREVER: number = 38.8
 
 
 
@@ -283,7 +283,7 @@ export  struct  VipPage{
               .fontColor(Color.Gray)
               .fontWeight(480)
               .id('text_update')
-            Text('(原价¥39.8)')
+            Text('(原价¥49.8)')
               .fontSize(14)
               .fontColor(Color.Gray)
               .decoration({ type: TextDecorationType.LineThrough })

+ 126 - 169
entry/src/main/ets/view/LocalMusic.ets

@@ -165,6 +165,7 @@ export struct LocalMusic {
   @Consume isCanBack: boolean
   @Consume @Watch('onModeChange') modeType: number; // 0首页,1媒体库,2艺术家,3专辑
   @State showSingleLyric: boolean = false
+  @State sortType: number = 4 //默认排序方式
 
   onModeChange() {
     if (this.modeType === 2 || this.modeType === 3) {
@@ -344,7 +345,7 @@ export struct LocalMusic {
 
   // 组件生命周期
   aboutToAppear() {
-
+    this.sortType  = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
     Utility.getAppName(getContext(this)).then((appName: string) => {
       this.appName = appName
     })
@@ -857,13 +858,19 @@ export struct LocalMusic {
     return mediaItems;
   }
 
-  updateListData(mList: Array<VideoItem>) {
+  updateListData(mList: Array<VideoItem>,noSort?:boolean) {
 
     animateTo({ duration: 888 }, () => {
       this.opacityItem = 0;
     });
     setTimeout(() => {
       this.videoLocalList = mList;
+      if(!noSort){
+        if(this.modeType===0||this.modeType===1){
+          this.sortType  = PreferencesUtil.getNumberSync(SettingPage.SORT_TYPE, 4)
+          this.doSortType(this.sortType)
+        }
+      }
       this.dataSource.pushArrayData(this.videoLocalList)
       animateTo({ duration: 888 }, () => {
         this.opacityItem = 1;
@@ -1028,104 +1035,101 @@ export struct LocalMusic {
       title: "请选择排序模式",
       maskColor: Color.Transparent,
       height: '75%',
-      sheets: ["按艺术家升序", "按艺术家降序", "按专辑升序", "按专辑降序", "按名称升序", "按名称降序", "按时间升序",
-        "按时间降序"],
+      sheets: ["按艺术家升序", "按艺术家降序", "按专辑升序", "按专辑降序", "按名称升序", "按名称降序", "按添加时间升序",
+        "按添加时间降序"],
       transition: AnimationHelper.transitionInDown(555),
       onAction: (index) => {
-        switch (index) {
-          case 0:
-            this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
-              // 类型排序优先级
-              const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-              if (typeOrder !== 0) {
-                return typeOrder;
-              }
-
-              // 处理艺术家可能为undefined的字符串比较
-              const artistA = a.artist?.trim() || ''; // 可选添加 trim() 处理空格
-              const artistB = b.artist?.trim() || '';
-              return artistA.localeCompare(artistB);
-            });
-
-            break;
-          case 1:
-            this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
-              // 类型排序优先级
-              const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-              if (typeOrder !== 0) {
-                return typeOrder;
-              }
+        this.doSortType(index)
+        this.updateListData(this.videoLocalList,true)
+      }
+    })
+  }
 
-              // 处理艺术家可能为undefined的字符串比较
-              const artistA = a.artist?.trim() || ''; // 可选添加 trim() 处理空格
-              const artistB = b.artist?.trim() || '';
-              return artistB.localeCompare(artistA);
-            });
-            break;
-          case 2:
-            this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
-              // 类型排序优先级
-              const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-              if (typeOrder !== 0) {
-                return typeOrder;
-              }
 
-              // 处理专辑可能为undefined的字符串比较
-              const albumA = a.album?.trim() || ''; // 可选添加 trim() 处理空格
-              const albumB = b.album?.trim() || '';
-              return albumA.localeCompare(albumB);
-            });
+  doSortType(index:number){
+    switch (index){
+      case 0:
+        this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
+          // 类型排序优先级
+          const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+          if (typeOrder !== 0) return typeOrder;
+
+          // 处理艺术家可能为undefined的字符串比较
+          const artistA = a.artist?.trim() || '';  // 可选添加 trim() 处理空格
+          const artistB = b.artist?.trim() || '';
+          return artistA.localeCompare(artistB);
+        });
 
-            break;
-          case 3:
-            this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
-              // 类型排序优先级
-              const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-              if (typeOrder !== 0) {
-                return typeOrder;
-              }
+        break;
+      case 1:
+        this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
+          // 类型排序优先级
+          const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+          if (typeOrder !== 0) return typeOrder;
+
+          // 处理艺术家可能为undefined的字符串比较
+          const artistA = a.artist?.trim() || '';  // 可选添加 trim() 处理空格
+          const artistB = b.artist?.trim() || '';
+          return artistB.localeCompare(artistA);
+        });
+        break;
+      case 2:
+        this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
+          // 类型排序优先级
+          const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+          if (typeOrder !== 0) return typeOrder;
+
+          // 处理专辑可能为undefined的字符串比较
+          const albumA = a.album?.trim() || '';  // 可选添加 trim() 处理空格
+          const albumB = b.album?.trim() || '';
+          return albumA.localeCompare(albumB);
+        });
 
-              // 处理专辑可能为undefined的字符串比较
-              const albumA = a.album?.trim() || ''; // 可选添加 trim() 处理空格
-              const albumB = b.album?.trim() || '';
-              return albumB.localeCompare(albumA);
-            });
+        break;
+      case 3:
+        this.videoLocalList.sort((a: VideoItem, b: VideoItem) => {
+          // 类型排序优先级
+          const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+          if (typeOrder !== 0) return typeOrder;
+
+          // 处理专辑可能为undefined的字符串比较
+          const albumA = a.album?.trim() || '';  // 可选添加 trim() 处理空格
+          const albumB = b.album?.trim() || '';
+          return albumB.localeCompare(albumA);
+        });
 
-            break;
-          case 4:
-            Utility.doSortListAscending(this.videoLocalList)
-            break;
-          case 5:
-            Utility.doSortListDescending(this.videoLocalList)
-            break;
-          case 6:
-            this.videoLocalList.sort((a, b) => {
-              // First, sort by type
-              const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-              if (typeOrder !== 0) {
-                return typeOrder;
-              }
+        break;
+      case 4:
+        Utility.doSortListAscending(this.videoLocalList)
+        break;
+      case 5:
+        Utility.doSortListDescending(this.videoLocalList)
+        break;
+      case 6:
+        this.videoLocalList.sort((a, b) => {
+          // First, sort by type
+          const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+          if (typeOrder !== 0) {
+            return typeOrder;
+          }
 
-              // If types are the same, sort by cTime in ascending order
-              return a.cTime.localeCompare(b.cTime);
-            });
-            break;
-          case 7:
-            this.videoLocalList.sort((a, b) => {
-              // First, sort by type
-              const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
-              if (typeOrder !== 0) {
-                return typeOrder;
-              }
+          // If types are the same, sort by cTime in ascending order
+          return a.cTime.localeCompare(b.cTime);
+        });
+        break;
+      case 7:
+        this.videoLocalList.sort((a, b) => {
+          // First, sort by type
+          const typeOrder = getTypeOrder(a.type) - getTypeOrder(b.type);
+          if (typeOrder !== 0) {
+            return typeOrder;
+          }
 
-              // If types are the same, sort by cTime in descending order
-              return b.cTime.localeCompare(a.cTime);
-            });
-            break;
-        }
-        this.updateListData(this.videoLocalList)
-      }
-    })
+          // If types are the same, sort by cTime in descending order
+          return b.cTime.localeCompare(a.cTime);
+        });
+        break;
+    }
   }
 
   showSheelDialog() {
@@ -4178,7 +4182,7 @@ export struct LocalMusic {
   // private context: common.UIAbilityContext =  getContext(this) as common.UIAbilityContext;
   @State mFirst: boolean = true;
   @State mDestroyPage: boolean = false;
-  @State playSpeed: string = '1f';
+  @State playSpeed: number = 1;
   @State oldSeconds: number = 0;
   @State isSeekTo: boolean = false;
   @State isCurrentTime: boolean = false;
@@ -4300,8 +4304,8 @@ export struct LocalMusic {
     LogUtil.debug("onecold lyricPath =" + lyricPath)
 
     const neiqianLrc = LrcParser.getLyrics(this.videoUrl);//获取内嵌歌词
-    LogUtil.debug("onecold 找到内嵌歌词 neiqianLrc =" + neiqianLrc  )
     if(StrUtil.isNotEmpty(neiqianLrc)&&!isToast){
+      LogUtil.debug("onecold 找到内嵌歌词 neiqianLrc =" + neiqianLrc  )
       //赋值给this.lyricContent,播控中心才可以显示歌词
       this.lyricContent = neiqianLrc
       // 将文件内容按行分割成字符串数组
@@ -4322,17 +4326,17 @@ export struct LocalMusic {
       if (this.currentSong !== undefined) {
         // ToastUtil.showShort('正在为你搜索在线歌词!')
         //判断是不是赞助会员,是会员的话才开启歌词功能
-        if (!this.isDebug) {
+        // if (!this.isDebug) {
           if (!Utility.isNoble()) {
             LogUtil.debug("onecold 不是赞助会员")
             return
           }
-        if(!Utility.isPassInstallTime(12)){
+        if(!Utility.isPassInstallTime(33)){
             LogUtil.debug("onecold not pass time")
             // LogUtil.debug("onecold 用户安装app没超过12天" )
             return
           }
-        }
+        // }
 
         let artist = this.currentSong?.artist
         if (artist === undefined) {
@@ -4343,7 +4347,7 @@ export struct LocalMusic {
         }
         NetAxiosUtil.getLyric(this.name, artist, isApi2).then((res) => {
 
-          LogUtil.debug("onecold res =" + res)
+          // LogUtil.debug("onecold res =" + res)
           if (StrUtil.isNotEmpty(res) && res !== 'unknown' && res !== 'Timeout was reached') {
 
             if (StrUtil.isNotEmpty(res)) {
@@ -4572,67 +4576,7 @@ export struct LocalMusic {
     })
   }
 
-  //倍速播放
-  showMultipleDialog(xid: string) {
-
-    let dataBean = new BubbleBean()
-    dataBean.data = ["0.75X", "1.0X", "1.25X", "1.5X", "1.75X", "2.0X", "3.0X"]
-    dataBean.onItemClick = (i) => {
-      // ToastUtil.showToast('您点击了第'+index+'个')
-      this.multiple = dataBean.data[i]
-
-
-      switch (i) {
-
-        case 0: //0.75X
-          this.playSpeed = '0.75f'
-          this.mIjkMediaPlayer.setSpeed("0.75f");
-          break
-        case 1: //1.0X
-          this.playSpeed = '1f'
-          this.mIjkMediaPlayer.setSpeed("1f");
-          break
-        case 2: //1.25X
-          this.playSpeed = '1.25f'
-          this.mIjkMediaPlayer.setSpeed("1.25f");
-          break
-        case 3: //1.5X
-          this.playSpeed = '1.5f'
-          this.mIjkMediaPlayer.setSpeed("1.5f");
-          break
-        case 4: //1.75X
-          this.playSpeed = '1.75f'
-          this.mIjkMediaPlayer.setSpeed("1.75f");
-          break
-        case 5: //2.0X
-          this.playSpeed = '2f'
-          this.mIjkMediaPlayer.setSpeed("2f");
-          break
-
-        case 6: //3.0X
-          this.playSpeed = '3f'
-          this.mIjkMediaPlayer.setSpeed("3f");
-          break
-
-      }
 
-      xpup.dismiss()
-    }
-    let popupPosition: PopupPosition = PopupPosition.BOTTOM
-    if (xid.includes('down')) {
-      popupPosition = PopupPosition.TOP
-    }
-
-    let xpup = XPopup.Builder()
-      .setPopupPosition(popupPosition)
-      .setModal(true)
-      .setInSubWindow(true)
-      .setDismissOnTouchOutside(true)// .atView(xid)
-      .asBubble(wrapBuilder(customPopupBuilder), dataBean)
-      .show()
-
-
-  }
 
   // 定义开始旋转的方法
   // 定时器用于一百毫秒执行一次旋转角度
@@ -5812,14 +5756,29 @@ export struct LocalMusic {
                 .onClick(() => {
                   this.doMore(more.id)
                 })
-              Text(this.multiple)
-                .fontSize(16)
-                .margin({ left: 20 })
-                .fontColor(Color.White)
-                .visibility(more.id === 1 ? Visibility.Visible : Visibility.None)
-                .id('more_id_mu')
-                .onClick(() => {
-                  this.doMore(more.id)
+              Select([//倍速
+                { value: '0.25x' },
+                { value: '0.5x' },
+                { value: '0.75x' },
+                { value: '1x' },
+                { value: '1.25x' },
+                { value: '1.5x' },
+                { value: '1.75x' },
+                { value: '2x' },
+                { value: '3x' }])
+                .font({ size: 16, weight: FontWeight.Medium })
+                .fontColor($r('sys.color.white'))
+                .margin({left:25})
+                .visibility(more.id===1?Visibility.Visible:Visibility.None)
+                .selected(CommonConstants.video_speed_list.indexOf(this.playSpeed))
+                .value(Utility.optimizedFormat(this.playSpeed))
+                .onSelect(async (_index: number, text?: string | undefined) => {
+                  let speed = parseFloat(text?.replace('x', '') || '1');
+                  if (!CommonConstants.video_speed_list.includes(speed)) {
+                    speed = 1;
+                  }
+                  this.playSpeed = speed
+                  this.mIjkMediaPlayer.setSpeed(this.playSpeed+'f');
                 })
               Slider({
                 value: this.volume,
@@ -6018,9 +5977,7 @@ export struct LocalMusic {
 
   doMore(moreId: number) {
     switch (moreId) {
-      case 1: //倍数
-        this.showMultipleDialog('middle_id')
-        break;
+
       case 10: //设为铃声
         this.setRingTone()
         this.isShowMoreView = false
@@ -6507,7 +6464,7 @@ export struct LocalMusic {
     this.mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_timeout", "10000000");
     // 变速播放
     this.mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", "1");
-    this.mIjkMediaPlayer.setSpeed(this.playSpeed);
+    this.mIjkMediaPlayer.setSpeed(this.playSpeed+'f');
     let Speed = this.mIjkMediaPlayer.getSpeed()
     LogUtils.getInstance().LOGI('getSpeed--' + Speed)
     //是否开启循环播放

+ 1 - 1
oh_modules/.ohpm/@simplepeng+spider-man@1.0.1/oh_modules/@simplepeng/spider-man/src/main/ets/components/CrashPage.ets

@@ -52,7 +52,7 @@ export struct SwiperPage {
   build() {
     Scroll() {
       Column({ space: 10 }) {
-        Item({ type: '发生崩溃了', message: '请把该界面截图发送到开发者邮箱:app@97admin.com,以便开发者更快修复。谢谢!' })
+        Item({ type: '发生崩溃了', message: '请把该界面截图发送到qq群里或者开发者邮箱:app@97admin.com,以便开发者更快修复。谢谢!' })
         Item({ type: 'marketName', message: this.marketName })
         Item({ type: 'bundle_name', message: this.eventInfo.params['bundle_name'] })
         // Item({ type: 'abiList', message: this.abiList })

+ 1 - 1
oh_modules/@simplepeng/spider-man/src/main/ets/components/CrashPage.ets

@@ -52,7 +52,7 @@ export struct SwiperPage {
   build() {
     Scroll() {
       Column({ space: 10 }) {
-        Item({ type: '发生崩溃了', message: '请把该界面截图发送到开发者邮箱:app@97admin.com,以便开发者更快修复。谢谢!' })
+        Item({ type: '发生崩溃了', message: '请把该界面截图发送到qq群里或者开发者邮箱:app@97admin.com,以便开发者更快修复。谢谢!' })
         Item({ type: 'marketName', message: this.marketName })
         Item({ type: 'bundle_name', message: this.eventInfo.params['bundle_name'] })
         // Item({ type: 'abiList', message: this.abiList })