📅  最后修改于: 2022-03-11 14:59:10.926000             🧑  作者: Mango
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:audioplayers/audio_cache.dart';
import 'package:audioplayers/audioplayers.dart';
class Jiddu extends StatefulWidget {
const Jiddu({Key key}) : super(key: key);
@override
_JidduState createState() => _JidduState();
}
class _JidduState extends State with TickerProviderStateMixin {
AnimationController controller;
AudioPlayer _audioPlayer = AudioPlayer();
bool isPlaying = false;
@override
void initState() {
super.initState();
controller = AnimationController(
vsync: this,
duration: Duration(seconds: 60),
);
_audioCache = AudioCache(
prefix: "audio/",
fixedPlayer: AudioPlayer()..setReleaseMode(ReleaseMode.STOP));
}
playme() async {
AudioPlayer audioplay = await _audioCache.play('30sec.mp3');
}
AudioCache _audioCache;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Audio')),
body: Column(
children: [
Center(
child: RaisedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('Go Back'))),
Container(
margin: EdgeInsets.all(20.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
FloatingActionButton(
child: AnimatedBuilder(
animation: controller,
builder: (BuildContext context, Widget child) {
return new Icon(controller.isAnimating
? Icons.pause
: Icons.play_arrow);
},
),
onPressed: () {
if (controller.isAnimating && isPlaying){
controller.stop();
} else {
controller.reverse(
from: controller.value == 0.0
? 1.0
: controller.value);
playme();
}
},
),
],
)),
],
),
);
}
}