【发布时间】:2020-08-10 14:39:53
【问题描述】:
我的代码旨在在用户按下播放声音时播放歌曲,我需要一个按钮来停止播放音乐。我之所以选择这样播放音乐是因为音频缓存功能由于某种原因在我的代码中不起作用(我一直收到错误消息说我的文件无法加载)虽然这种方法有效但我不知道如何停止像这样播放的音乐。
import 'dart:io';
import 'package:audioplayers/audio_cache.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:path_provider/path_provider.dart';
import 'package:audioplayers/audioplayers.dart';
import 'dart:io';
class bodyscan extends StatefulWidget {
@override
_bodyscanState createState() => _bodyscanState();
}
enum PlayerState {stopped,playing,paused}
class _bodyscanState extends State<bodyscan> {
String mp3Uri = "";
void _playsound(){
AudioPlayer player = AudioPlayer();
player.play(mp3Uri);
}
void _loadsound() async {
final ByteData data = await rootBundle.load("audio/doomed.m4a");
Directory tempDir = await getTemporaryDirectory();
File tempFile = File('${tempDir.path}/doomed.m4a');
await tempFile.writeAsBytes(data.buffer.asUint8List(), flush:true);
mp3Uri = tempFile.uri.toString();
}
@override
void initState() {
_loadsound();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
InkWell(
enableFeedback: false,
child :Container (
color: Colors.blue,
padding: const EdgeInsets.all(20.0),
child: Text('PlaySound', style: TextStyle(color: Colors.white),) ,
),
onTap: _playsound,
),
],
),
)
);
}
}
【问题讨论】: