提交 6d428d0d 作者: 王苏进

feat: fix

上级 09c64f8c
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
package="com.example.aivoice_plugin"> package="com.example.aivoice_plugin">
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest> </manifest>
...@@ -12,4 +12,14 @@ ...@@ -12,4 +12,14 @@
tools:replace="android:label"> tools:replace="android:label">
<!-- 其他现有代码 --> <!-- 其他现有代码 -->
</application> </application>
<uses-permission android:name="android.permission.RECORD_AUDIO"
tools:ignore="ManifestOrder" />
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"-->
<!-- tools:ignore="ScopedStorage" />-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest> </manifest>
...@@ -52,4 +52,5 @@ ...@@ -52,4 +52,5 @@
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest> </manifest>
...@@ -2,6 +2,7 @@ import 'dart:async'; ...@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:aivoice_plugin/aivoice_plugin.dart'; import 'package:aivoice_plugin/aivoice_plugin.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
void main() { void main() {
runApp(const MyApp()); runApp(const MyApp());
...@@ -37,13 +38,35 @@ class _MyAppState extends State<MyApp> { ...@@ -37,13 +38,35 @@ class _MyAppState extends State<MyApp> {
final b = event["playWords"]; final b = event["playWords"];
setState(() {}); setState(() {
_text = b ?? "$a"; _text = event["text"] ?? "$a";
});
// _text = b ?? "$a";
// print(event["text"]); // print(event["text"]);
}); });
_aivoicePlugin.prepareEnvironment({"appId": "2301072440"}); _aivoicePlugin.prepareEnvironment({"appId": "2301072440"});
} }
///申请权限麦克风
static Future<bool> requestPermissionMicrophone() async {
final permissionMicrophone = await Permission.microphone.status;
if (permissionMicrophone == PermissionStatus.granted) {
return true;
}
// 申请权限
final Map<Permission, PermissionStatus> permissions = await [
Permission.microphone,
].request();
final status = permissions[Permission.microphone] == PermissionStatus.granted;
if (!status) {
// askOpenAppSettings(content: "录制需要麦克风权限");
}
return status;
}
// Platform messages are asynchronous, so we initialize in an async method. // Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async { Future<void> initPlatformState() async {
if (!mounted) return; if (!mounted) return;
...@@ -58,6 +81,7 @@ class _MyAppState extends State<MyApp> { ...@@ -58,6 +81,7 @@ class _MyAppState extends State<MyApp> {
TextButton( TextButton(
onPressed: () { onPressed: () {
_aivoicePlugin.ttsInitEngine(configMap); _aivoicePlugin.ttsInitEngine(configMap);
requestPermissionMicrophone();
}, },
child: const Text('init')), child: const Text('init')),
TextButton( TextButton(
...@@ -105,6 +129,7 @@ class _MyAppState extends State<MyApp> { ...@@ -105,6 +129,7 @@ class _MyAppState extends State<MyApp> {
TextButton( TextButton(
onPressed: () { onPressed: () {
_aivoicePlugin.initEngine(configMap); _aivoicePlugin.initEngine(configMap);
requestPermissionMicrophone();
}, },
child: const Text('init2')), child: const Text('init2')),
TextButton( TextButton(
......
...@@ -95,6 +95,11 @@ packages: ...@@ -95,6 +95,11 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
fuchsia_remote_debug_protocol: fuchsia_remote_debug_protocol:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -169,6 +174,54 @@ packages: ...@@ -169,6 +174,54 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.0"
permission_handler:
dependency: "direct main"
description:
name: permission_handler
sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb"
url: "https://pub.dev"
source: hosted
version: "11.3.1"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
sha256: "76e4ab092c1b240d31177bb64d2b0bea43f43d0e23541ec866151b9f7b2490fa"
url: "https://pub.dev"
source: hosted
version: "12.0.12"
permission_handler_apple:
dependency: transitive
description:
name: permission_handler_apple
sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0
url: "https://pub.dev"
source: hosted
version: "9.4.5"
permission_handler_html:
dependency: transitive
description:
name: permission_handler_html
sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851
url: "https://pub.dev"
source: hosted
version: "0.1.3+2"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
url: "https://pub.dev"
source: hosted
version: "4.2.3"
permission_handler_windows:
dependency: transitive
description:
name: permission_handler_windows
sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e"
url: "https://pub.dev"
source: hosted
version: "0.2.1"
platform: platform:
dependency: transitive dependency: transitive
description: description:
...@@ -270,6 +323,14 @@ packages: ...@@ -270,6 +323,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "13.0.0" version: "13.0.0"
web:
dependency: transitive
description:
name: web
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev"
source: hosted
version: "0.5.1"
webdriver: webdriver:
dependency: transitive dependency: transitive
description: description:
...@@ -280,4 +341,4 @@ packages: ...@@ -280,4 +341,4 @@ packages:
version: "3.0.3" version: "3.0.3"
sdks: sdks:
dart: ">=3.3.4 <4.0.0" dart: ">=3.3.4 <4.0.0"
flutter: ">=3.3.0" flutter: ">=3.16.0"
...@@ -29,6 +29,8 @@ dependencies: ...@@ -29,6 +29,8 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons. # Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.6 cupertino_icons: ^1.0.6
permission_handler: ^11.3.1
dev_dependencies: dev_dependencies:
integration_test: integration_test:
sdk: flutter sdk: flutter
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论