flutter - 如何在颤动的文本到语音中显示“播放”和“静音”的状态?
问题描述
我有这个将文本转换为音频的程序,它可以正常工作,但到目前为止,我还无法集成并找到有关显示“正在播放”和“关闭”的文本的信息,以便在播放时显示“玩”,反之亦然,我将非常感谢您的帮助,非常感谢。
这是我的代码。
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_tts/flutter_tts.dart';
class TextVoicePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: TextVoice(),
),
);
}
class TextVoice extends StatelessWidget {
final FlutterTts flutterTts = FlutterTts();
@override
Widget build(BuildContext context) {
TextEditingController textEditingController = TextEditingController();
Future _speak(String text) async {
await flutterTts.setLanguage("es-MX");
await flutterTts.setPitch(1);
await flutterTts.speak(text);
}
Future _stop() async {
await flutterTts.stop();
}
return Scaffold(
body: Stack(
children: <Widget>[
Padding(
padding: EdgeInsets.all(30.0),
child: TextFormField(
decoration: InputDecoration(
hintText: 'Introduce el texto.',
labelStyle: TextStyle(color: Colors.white70, fontSize: 16.0),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.pink[900]),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.pink[50]),
),
hintStyle: TextStyle(color: Colors.white30, fontSize: 16.0),
border: OutlineInputBorder(),
),
controller: textEditingController,
cursorColor: Colors.white,
style: TextStyle(color: Colors.white70, fontSize: 16.0),
maxLines: null,
),
),
],
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
bottomNavigationBar: Container(
color: Colors.black,
height: 40.0,
alignment: Alignment.topCenter,
),
floatingActionButton: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FloatingActionButton(
backgroundColor: Colors.green,
heroTag: "btn",
onPressed: () => _speak(textEditingController.text),
child: Icon(Icons.play_arrow),
),
SizedBox(
width: 40,
),
FloatingActionButton(
backgroundColor: Colors.red,
heroTag: "btn2",
onPressed: () => _stop(),
child: Icon(Icons.stop),
)
],
),
));
}
}
解决方案
推荐阅读
- android - 为什么我的第一个 Retrofit 调用不起作用,但下一个调用完美?
- python-3.x - 如何同时运行多个python脚本?
- python-3.x - 在 Python 中,有没有办法使用 networkx 以标准格式显示神经网络?
- reactjs - Redux reducer 状态更改不会触发生命周期方法
- c# - 我无法通过 IIS 访问托管页面
- reactjs - 如何在bootstrap react js中做startdate和endate?
- php - Laravel 5.5 中 PHP 单元测试中的类验证器错误
- vba - 使用 VBA / AHK 在 Outlook 中突出显示最近的电子邮件
- c++ - 操作符“<<”溢出双向链表。C++
- sql - sql如何将增量显示为总增量的一部分