问题描述
我正在尝试在聊天应用程序中进行文本语音转换和文本语音转换功能,以制作语音消息。我完全https://pub.dev/packages/flutter_tts/example遵循了本文档。但是我必须导入另一个名为Flutter_tts_web.dart的库。我认为这应该没什么大不了的,但似乎正在引起很大的错误。这是堆栈跟踪
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:2:8: Error: Not found: 'dart:html'
import 'dart:html' as html;
^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:3:8: Error: Not found: 'dart:js'
import 'dart:js';
^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:31:3: Error: Type 'html.SpeechSynthesis' not found.
html.SpeechSynthesis synth;
^^^^^^^^^^^^^^^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:32:3: Error: Type 'html.SpeechSynthesisUtterance' not found.
html.SpeechSynthesisUtterance utterance;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:31:8: Error: 'SpeechSynthesis' isn't a type.
html.SpeechSynthesis synth;
^^^^^^^^^^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:32:8: Error: 'SpeechSynthesisUtterance' isn't a type.
html.SpeechSynthesisUtterance utterance;
^^^^^^^^^^^^^^^^^^^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:37:17: Error: Method not found: 'SpeechSynthesisUtterance'.
utterance = html.SpeechSynthesisUtterance();
^^^^^^^^^^^^^^^^^^^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:38:18: Error: Getter not found: 'window'.
synth = html.window.speechSynthesis;
^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:156:63: Error: 'JsArray' isn't a type.
context['speechSynthesis'].callMethod('getVoices') as JsArray<dynamic>;
^^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart:156:9: Error: The getter 'context' isn't defined for the class 'FlutterTtsPlugin'.
- 'FlutterTtsPlugin' is from 'package:Flutter_tts/Flutter_tts_web.dart' ('../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/Flutter_tts-1.2.6/lib/Flutter_tts_web.dart').
Try correcting the name to the name of an existing getter,or defining a getter or field named 'context'.
context['speechSynthesis'].callMethod('getVoices') as JsArray<dynamic>;
^^^^^^^
/C:/Flutter/packages/Flutter_web_plugins/lib/src/plugin_registry.dart:29:5: Error: Method not found: 'webOnlySetPluginHandler'.
ui.webOnlySetPluginHandler(_binaryMessenger.handlePlatformMessage);
^^^^^^^^^^^^^^^^^^^^^^^
Unhandled exception:
filesystemexception(uri=
org-dartlang-untranslatable-uri:dart%3Ahtml; message=StandardFileSystem only supports file:* and data:* URIs)
#0 StandardFileSystem.entityForUri (package:front_end/src/api_proto
type/standard_file_system.dart:33:7)
#1 asFileUri (package:vm/kernel_front_end.dart:659:37)
#2 writeDepfile (package:vm/kernel_front_end.dart:853:21)
<asynchronous suspension>
#3 FrontendCompiler.compile (package:frontend_server/frontend_server.dart:574:15)
<asynchronous suspension>
#4 _FlutterFrontendCompiler.compile (package:Flutter_frontend_server/server.dart:43:22)
#5 starter (package:Flutter_frontend_server/server.dart:182:27)
#6 main (file:///C:/b/s/w/ir/cache/builder/src/Flutter/Flutter_frontend_server/bin/starter.dart:9:30)
#7 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#8 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
FAILURE: Build Failed with an exception.
* Where:
Script 'C:\Flutter\packages\Flutter_tools\gradle\Flutter.gradle' line: 896
* What went wrong:
Execution Failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'C:\Flutter\bin\Flutter.bat'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD Failed in 1m 38s
Exception: Gradle task assembleDebug Failed with exit code 1
我试图删除文件,但变量Tts State取决于Web文件。答;因此尝试将其清除干净并切换到Beta Chanel。请尽快提供帮助,因为这是一次黑客马拉松,我还有8小时的时间。我几乎会立即提供任何必要的代码
解决方法
我认为是由于未安装dart引起的,请确保已正确安装dart,并在安装dart之后也使用以下命令。
pub get