Преглед изворни кода

碰一碰分享当前播放的音乐实现

onecold пре 1 година
родитељ
комит
610e97167e

+ 2 - 2
AppScope/app.json5

@@ -2,8 +2,8 @@
   "app": {
     "bundleName": "com.xgplayer.ttmusic.hm",
     "vendor": "example",
-    "versionCode": 20250730,
-    "versionName": "1.4.9",
+    "versionCode": 20250806,
+    "versionName": "1.5.0",
     "icon": "$media:app_icon",
     "label": "$string:app_name",
     "multiAppMode": {

+ 15 - 15
entry/src/main/ets/controller/KnockController.ets

@@ -33,7 +33,7 @@ export class KnockController {
   private context: common.UIAbilityContext | undefined = undefined;
   // Knock listening status
   private isKnockListening: boolean = false;
-  private songList: Array<VideoItem>| undefined = [];
+  private  currentSong: VideoItem | undefined = undefined;
 
   public static getInstance(context: common.UIAbilityContext): KnockController {
     if (!KnockController.controller) {
@@ -57,25 +57,25 @@ export class KnockController {
     // share app linking
     LogUtil.info('onecold KnockController  碰一碰 ');
     try {
-      let curIndex: number = AppStorage.get('curIndex') as number;
-       this.songList = AppStorage.get('songList');
-      console.info('onecold KnockController  碰一碰 curIndex '+curIndex);
-      console.info('onecold KnockController  碰一碰 this.songList '+this.songList?.length);
-       if(this.songList){
-         let mediaData: VideoItem = this.songList[curIndex];
+       this.currentSong = AppStorage.get('currentSong');
+
+       if(this.currentSong){
+         let mediaData: VideoItem = this.currentSong;
+         let artist = ''
+         if(mediaData.artist){
+           artist = mediaData.artist
+         }
          // Video thumbnail image sandbox path
-         let coverUri: string = `${mediaData.pixelMapPath}`;
-         console.info('onecold KnockController  碰一碰 filePath '+coverUri);
+         let coverUri: string = fileUri.getUriFromPath(mediaData.pixelMapPath);
+         console.info('onecold KnockController  碰一碰 coverUri '+coverUri);
+         console.info('onecold KnockController  碰一碰 mediaData.filePath '+fileUri.getUriFromPath(mediaData.filePath));
          // Get video thumbnail URI path
          let shareData: systemShare.SharedData = new systemShare.SharedData({
-           // Set the shared data type to Link
-           utd: uniformTypeDescriptor.UniformDataType.AUDIO,
-           uri:mediaData.filePath,
-           // The shared App Linking link is replaced with the real address here
-           // content: `https://www.xgplayer.com?curIndex=${curIndex}`,
+           utd: uniformTypeDescriptor.UniformDataType.MEDIA,
+           uri: fileUri.getUriFromPath(mediaData.filePath),
            thumbnailUri: coverUri,
            title: mediaData.name,
-           description: mediaData.artist
+           description: artist
          });
          // Initiate a share
          target.share(shareData).then(() => {

+ 1 - 29
entry/src/main/ets/entryability/EntryAbility.ets

@@ -37,21 +37,8 @@ import { url } from '@kit.ArkTS';
 export default class EntryAbility extends UIAbility {
     // UI上下文对象,用于获取窗口信息
     private uiContext?: UIContext;
-    private mKnockItem: string = '';//碰一碰分享接收索引
     private awareness: smartMobilityCommon.SmartMobilityAwareness = smartMobilityCommon.getSmartMobilityAwareness();
 
-    private getKnockPath(want: Want): string {
-        let uri = want?.uri;
-        let knockItem: string = '';
-        // Parse the parameters to obtain the app linking
-        if (uri) {
-            let urlObject = url.URL.parseURL(want?.uri);
-            LogUtil.info('onecold urlObject= '+urlObject.toJSON());
-            knockItem = urlObject.params.get('videoIndex') as string;
-            LogUtil.info('onecold getKnockPath= '+knockItem);
-        }
-        return knockItem;
-    }
     /**
      * 窗口尺寸变化回调函数
      * @param windowSize 新的窗口尺寸对象
@@ -125,17 +112,8 @@ export default class EntryAbility extends UIAbility {
 
     //处理其他app点击其他应用打开播放器播放视频或者音频
     loadDoWant(want: Want){
-        console.info('onecold KnockController  碰一碰 want ='+JSON.stringify(want));
+        // console.info('onecold KnockController  碰一碰 want ='+JSON.stringify(want));
         let uri = want.uri;
-        // console.info('onecold KnockController  碰一碰 want.type ='+want.type);
-        // console.info('onecold KnockController  碰一碰 want.uri ='+want.uri);
-        // console.info('onecold KnockController  碰一碰 want.action ='+want.action);
-        // console.info('onecold KnockController  碰一碰 want.parameters ='+want.parameters);
-        // console.info('onecold KnockController  碰一碰 want.entities ='+want.entities);
-        // console.info('onecold KnockController  碰一碰 want.fds ='+want.fds);
-        // console.info('onecold KnockController  碰一碰 want.bundleName ='+want.bundleName);
-        // console.info('onecold KnockController  碰一碰 want.abilityName ='+want.abilityName);
-        // console.info('onecold KnockController  碰一碰 want.deviceId ='+want.deviceId);
         if (uri == null || uri == undefined|| StrUtil.isEmpty(uri)) {
             console.info('uri is invalid');
             return;
@@ -229,12 +207,6 @@ export default class EntryAbility extends UIAbility {
             windowClass.on('avoidAreaChange', this.onAvoidAreaChange)
         })
 
-        //碰一碰分享的跳转
-        let pageUrl: string = 'pages/Index';
-        if (this.mKnockItem && this.mKnockItem !== '') {
-            AppStorage.setOrCreate('videoIndex', Number.parseInt(this.mKnockItem));
-            // pageUrl = 'pages/VideoPlay';
-        }
 
         AppStorage.setOrCreate('windowStage',windowStage);
 

+ 5 - 6
entry/src/main/ets/view/LocalMusic.ets

@@ -813,9 +813,7 @@ export struct LocalMusic {
         this.videoUrl = this.currentSong.filePath
         this.name = this.currentSong.name
         this.cover = this.currentSong.pixelMapPath
-        AppStorage.setOrCreate('songList',this.songList) ;
-        AppStorage.setOrCreate('curIndex',this.curIndex) ;
-
+        AppStorage.setOrCreate('currentSong',this.currentSong) ;
       } else {
         this.name = '空空如也'
       }
@@ -1018,6 +1016,7 @@ export struct LocalMusic {
         }
         let item2 = new VideoItem(Utility.getMediaNameByUri(destPath), destPath, destPath, 0, 0, '')
         this.doPlay(item2)
+        this.isShowPlay = true
       }
 
 
@@ -4481,8 +4480,7 @@ export struct LocalMusic {
           let globalVideoList = Utility.getGlobalList(this.videoLocalList, CommonConstants.TYPE_LOCAL) as VideoItem[];
           this.curIndex = Utility.getCurIndexFromGlobalList(globalVideoList, item.filePath)
           this.songList = globalVideoList
-          AppStorage.setOrCreate('songList',this.songList) ;
-          AppStorage.setOrCreate('curIndex',this.curIndex) ;
+          AppStorage.setOrCreate('currentSong',this.currentSong) ;
           this.sonDataSource.pushArrayData(this.songList)
           this.currentSong = globalVideoList[this.curIndex]
         }
@@ -9625,7 +9623,8 @@ export struct LocalMusic {
           } else {
             this.getImageColor();
           }
-
+          //保存碰一碰分享的当前的歌曲
+          AppStorage.setOrCreate('currentSong',this.currentSong) ;
 
           let lyricPath = this.videoUrl.substring(0, this.videoUrl.lastIndexOf('.')) + '.lrc'
 

+ 3 - 10
entry/src/main/module.json5

@@ -77,19 +77,12 @@
                 "linkFeature": "FileOpen",
                 "maxFileSupported": 1
               },
-              //碰一碰分享增加
-              {
-                // The scheme must be configured as https
-                "scheme": "https",
-                // The host must be configured as the associated domain name
-                "host": "https://www.xgplayer.com",
-                "path": ""
-              }
+
             ],
-            "domainVerify": true,//碰一碰分享增加
+//            "domainVerify": true,//碰一碰分享增加
             "entities": [
               "entity.system.home",
-              "entity.system.browsable"//碰一碰分享增加
+//              "entity.system.browsable"//碰一碰分享增加
             ],
 
           }