simon 6 hónapja
szülő
commit
e292320bad
38 módosított fájl, 88 hozzáadás és 5 törlés
  1. 5 5
      build-profile.json5
  2. 0 0
      commons/uicomponents/.gitignore
  3. 0 0
      commons/uicomponents/BuildProfile.ets
  4. 0 0
      commons/uicomponents/Index.ets
  5. 0 0
      commons/uicomponents/build-profile.json5
  6. 0 0
      commons/uicomponents/consumer-rules.txt
  7. 0 0
      commons/uicomponents/hvigorfile.ts
  8. 0 0
      commons/uicomponents/obfuscation-rules.txt
  9. 0 0
      commons/uicomponents/oh-package.json5
  10. 0 0
      commons/uicomponents/src/main/ets/components/MainPage.ets
  11. 0 0
      commons/uicomponents/src/main/module.json5
  12. 0 0
      commons/uicomponents/src/main/resources/base/element/float.json
  13. 0 0
      commons/uicomponents/src/main/resources/base/element/string.json
  14. 0 0
      commons/uicomponents/src/ohosTest/ets/test/Ability.test.ets
  15. 0 0
      commons/uicomponents/src/ohosTest/ets/test/List.test.ets
  16. 0 0
      commons/uicomponents/src/ohosTest/module.json5
  17. 0 0
      commons/uicomponents/src/test/List.test.ets
  18. 0 0
      commons/uicomponents/src/test/LocalUnit.test.ets
  19. 0 0
      commons/utils/.gitignore
  20. 0 0
      commons/utils/BuildProfile.ets
  21. 0 0
      commons/utils/Index.ets
  22. 0 0
      commons/utils/build-profile.json5
  23. 0 0
      commons/utils/consumer-rules.txt
  24. 0 0
      commons/utils/hvigorfile.ts
  25. 0 0
      commons/utils/obfuscation-rules.txt
  26. 0 0
      commons/utils/oh-package.json5
  27. 24 0
      commans/utils/src/main/ets/utils/Speaker.ets
  28. 0 0
      commons/utils/src/main/module.json5
  29. 0 0
      commons/utils/src/main/resources/base/element/float.json
  30. 0 0
      commons/utils/src/main/resources/base/element/string.json
  31. 0 0
      commons/utils/src/ohosTest/ets/test/Ability.test.ets
  32. 0 0
      commons/utils/src/ohosTest/ets/test/List.test.ets
  33. 0 0
      commons/utils/src/ohosTest/module.json5
  34. 0 0
      commons/utils/src/test/List.test.ets
  35. 0 0
      commons/utils/src/test/LocalUnit.test.ets
  36. 23 0
      features/quickstart/src/main/ets/pages/ArticleDetailPage.ets
  37. 18 0
      features/quickstart/src/main/resources/base/media/ic_AI_read_normal.svg
  38. 18 0
      features/quickstart/src/main/resources/base/media/ic_AI_read_on.svg

+ 5 - 5
build-profile.json5

@@ -54,23 +54,23 @@
     },
     {
       "name": "quickstart",
-      "srcPath": "./features/quickstart",
+      "srcPath": "./features/quickstart"
     },
     {
       "name": "map",
-      "srcPath": "./features/map",
+      "srcPath": "./features/map"
     },
     {
       "name": "learning",
-      "srcPath": "./features/learning",
+      "srcPath": "./features/learning"
     },
     {
       "name": "utils",
-      "srcPath": "./commans/utils",
+      "srcPath": "./commons/utils"
     },
     {
       "name": "uicomponents",
-      "srcPath": "./commans/uicomponents",
+      "srcPath": "./commons/uicomponents"
     }
   ]
 }

commans/uicomponents/.gitignore → commons/uicomponents/.gitignore


commans/uicomponents/BuildProfile.ets → commons/uicomponents/BuildProfile.ets


commans/uicomponents/Index.ets → commons/uicomponents/Index.ets


commans/uicomponents/build-profile.json5 → commons/uicomponents/build-profile.json5


commans/uicomponents/consumer-rules.txt → commons/uicomponents/consumer-rules.txt


commans/uicomponents/hvigorfile.ts → commons/uicomponents/hvigorfile.ts


commans/uicomponents/obfuscation-rules.txt → commons/uicomponents/obfuscation-rules.txt


commans/uicomponents/oh-package.json5 → commons/uicomponents/oh-package.json5


commans/uicomponents/src/main/ets/components/MainPage.ets → commons/uicomponents/src/main/ets/components/MainPage.ets


commans/uicomponents/src/main/module.json5 → commons/uicomponents/src/main/module.json5


commans/uicomponents/src/main/resources/base/element/float.json → commons/uicomponents/src/main/resources/base/element/float.json


commans/uicomponents/src/main/resources/base/element/string.json → commons/uicomponents/src/main/resources/base/element/string.json


commans/uicomponents/src/ohosTest/ets/test/Ability.test.ets → commons/uicomponents/src/ohosTest/ets/test/Ability.test.ets


commans/uicomponents/src/ohosTest/ets/test/List.test.ets → commons/uicomponents/src/ohosTest/ets/test/List.test.ets


commans/uicomponents/src/ohosTest/module.json5 → commons/uicomponents/src/ohosTest/module.json5


commans/uicomponents/src/test/List.test.ets → commons/uicomponents/src/test/List.test.ets


commans/uicomponents/src/test/LocalUnit.test.ets → commons/uicomponents/src/test/LocalUnit.test.ets


commans/utils/.gitignore → commons/utils/.gitignore


commans/utils/BuildProfile.ets → commons/utils/BuildProfile.ets


commans/utils/Index.ets → commons/utils/Index.ets


commans/utils/build-profile.json5 → commons/utils/build-profile.json5


commans/utils/consumer-rules.txt → commons/utils/consumer-rules.txt


commans/utils/hvigorfile.ts → commons/utils/hvigorfile.ts


commans/utils/obfuscation-rules.txt → commons/utils/obfuscation-rules.txt


commans/utils/oh-package.json5 → commons/utils/oh-package.json5


+ 24 - 0
commans/utils/src/main/ets/utils/Speaker.ets

@@ -10,6 +10,16 @@ export class Speaker {
     extraParams: { "style": 'interaction-broadcast', "locate": 'CN', "name": 'EngineName' }
   };
   speakListener?: textToSpeech.SpeakListener;
+  extraParam: Record<string, Object> = {
+    "queueMode": 0,
+    "speed": 1,
+    "volume": 2,
+    "pitch": 1,
+    "languageContext": 'zh-CN',
+    "audioType": "pcm",
+    "soundChannel": 3,
+    "playType": 1
+  };
 
   constructor() {
     this.initListener();
@@ -55,4 +65,18 @@ export class Speaker {
       let code = (error as BusinessError).code
     }
   }
+
+  startSpeak(content: string) {
+    let speakParams: textToSpeech.SpeakParams = {
+      requestId: Date.now().toString(),
+      extraParams: this.extraParam
+    };
+    this.ttsEngin?.speak(content, speakParams);
+  }
+  stopSpeak() {
+    this.ttsEngin?.stop();
+  }
+  shutDownEngin() {
+    this.ttsEngin?.shutdown();
+  }
 }

commans/utils/src/main/module.json5 → commons/utils/src/main/module.json5


commans/utils/src/main/resources/base/element/float.json → commons/utils/src/main/resources/base/element/float.json


commans/utils/src/main/resources/base/element/string.json → commons/utils/src/main/resources/base/element/string.json


commans/utils/src/ohosTest/ets/test/Ability.test.ets → commons/utils/src/ohosTest/ets/test/Ability.test.ets


commans/utils/src/ohosTest/ets/test/List.test.ets → commons/utils/src/ohosTest/ets/test/List.test.ets


commans/utils/src/ohosTest/module.json5 → commons/utils/src/ohosTest/module.json5


commans/utils/src/test/List.test.ets → commons/utils/src/test/List.test.ets


commans/utils/src/test/LocalUnit.test.ets → commons/utils/src/test/LocalUnit.test.ets


+ 23 - 0
features/quickstart/src/main/ets/pages/ArticleDetailPage.ets

@@ -1,14 +1,25 @@
 import { ArticleClass } from '../model/ArticleClass';
 import { webview } from '@kit.ArkWeb';
+import { Speaker } from 'utils';
+import { emitter } from '@kit.BasicServicesKit';
 
 @Preview
 @Component
 export struct ArticleDetailPage {
   @State articleDetail: ArticleClass | null = null;
   @Consume('articlePathStack') articlePathStack: NavPathStack;
+  @State isClicked: boolean = false;
+  speaker: Speaker = new Speaker();
 
   aboutToAppear(): void {
     this.articleDetail = this.articlePathStack.getParamByName('articleDetail')[0] as ArticleClass;
+    emitter.on("eventId", () => {
+      this.isClicked = false;
+    });
+  }
+
+  aboutToDisappear(): void {
+    this.speaker?.shutdownEngine();
   }
 
   build() {
@@ -35,6 +46,18 @@ export struct ArticleDetailPage {
             }
           }
           .width('80%')
+
+          Image(this.isClicked ? $r('app.media.ic_AI_read_on'))
+            .width(40)
+            .height(40)
+            .onClick(() => {
+              this.isClicked = !this.isClicked;
+              if (this.isClicked === true) {
+                this.speaker.startSpeak(this.articleDetail!.brief);
+              } else {
+                this.speaker.stopSpeak();
+              }
+            })
         }
         .justifyContent(FlexAlign.SpaceBetween)
         .width('100%')

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 18 - 0
features/quickstart/src/main/resources/base/media/ic_AI_read_normal.svg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 18 - 0
features/quickstart/src/main/resources/base/media/ic_AI_read_on.svg