You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_QLine/lib/services/audio_service.dart

36 lines
931 B
Dart

import 'package:just_audio/just_audio.dart';
abstract class AudioService {
Future<void> playTone({required String path});
Future<void> listenAudioPlayerEvents({required Function() onAudioCompleted});
Future<void> disposeAudioPlayer();
}
class AudioServiceImp implements AudioService {
AudioPlayer audioPlayerInstance;
AudioServiceImp({required this.audioPlayerInstance});
@override
Future<void> listenAudioPlayerEvents({required Function() onAudioCompleted}) async {
audioPlayerInstance.playerStateStream.listen((playerState) async {
if (playerState.processingState == ProcessingState.completed) {
onAudioCompleted();
}
});
}
@override
Future<void> playTone({required String path}) async {
audioPlayerInstance.setAsset(path);
await audioPlayerInstance.play();
}
@override
Future<void> disposeAudioPlayer() async {
await audioPlayerInstance.dispose();
}
}