如果用户没有等待听到 信的声音 他在按钮之间快速移动 声音之间有重叠, 所有的声音依然存在。 在应用程序的后台 如何纠正或解决问题?
dependencies : kplayer: ^0.2.4
class _HomeState extends State<Home> {
String currentAlphabet = "A";
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.amber[200],
body: LayoutBuilder(builder: (context, constraints) {
var height = constraints.maxHeight;
var width = constraints.maxWidth;
return Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
sentenceHolder(height, width),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
imageHolder(height, width),
wordHolder(height, width),
],
),
Container(
decoration:
BoxDecoration(borderRadius: BorderRadius.circular(15)),
child: Wrap(
children: changePos(),
),
),
],
);
}),
);
}
playAudio(String path) {
Player.asset(path).play();
}
List<Widget> changePos() {
List<Widget> children = [
...alphabets
.map(
(e) => textHolder(e),
)
.toList()
];
return children;
}
Widget textHolder(String alphabet) {
return Padding(
padding: const EdgeInsets.all(7),
child: ElevatedButton(
onPressed: () {
currentAlphabet = alphabet;
playAudio("assets/audio/$alphabet.wav");
setState(() {});
},
child: Text(alphabet),
),
);
}
// 调用字母时声音是一个函数
它工作正常,但如果我们在字母按钮之间快速移动,我们会注意到所有声音同时一起工作 //
一个简单的解决方案是: 在调用 play() 之前停止已经播放的歌曲/声音