diff --git a/examples/audio_player_interaction/lib/main.dart b/examples/audio_player_interaction/lib/main.dart index bbbec2b..aab6de4 100644 --- a/examples/audio_player_interaction/lib/main.dart +++ b/examples/audio_player_interaction/lib/main.dart @@ -58,6 +58,7 @@ class _MyHomePageState extends State { _info += "Open Audio Session\n"; String testAudioAsset = 'sounds/notification.m4r'; + logIt('Playing $testAudioAsset'); await _player.play(testAudioAsset, loop: false); _info += "Start Player\n"; @@ -122,10 +123,13 @@ class _MyHomePageState extends State { ); } - void _onStatus(String status) { + void _onStatus(String status) async { + logIt('onStatus: $status'); _info += "Speech Status: ${status}\n"; if (_inTest && status == SpeechToText.doneStatus) { - print('listener stopped'); + logIt('listener stopped'); + // await _speechToText.stop(); + // print('speech stopped'); _loopTest(); } setState(() {}); @@ -136,11 +140,18 @@ class _MyHomePageState extends State { setState(() {}); } - void _onPlayerStop() { - print('Player stopped'); + void _onPlayerStop() async { + logIt('Player stopped'); _currentActivity = 'listening'; ++_loopCount; - _speechToText.listen(listenFor: Duration(seconds: 1)); + // await Future.delayed(Duration(seconds: 1)); + _speechToText.listen(listenFor: Duration(seconds: 5)); setState(() {}); } + + void logIt(String message) { + final now = DateTime.now(); + debugPrint('SoundLoop: $now, $message'); + _info += message + '\n'; + } } diff --git a/examples/audio_player_interaction/lib/sound_player.dart b/examples/audio_player_interaction/lib/sound_player.dart index 11dd022..0a73e5e 100644 --- a/examples/audio_player_interaction/lib/sound_player.dart +++ b/examples/audio_player_interaction/lib/sound_player.dart @@ -1,4 +1,5 @@ import 'package:audioplayers/audioplayers.dart'; +import 'package:flutter/foundation.dart'; abstract class SoundPlayer { bool get isPlaying; @@ -30,13 +31,19 @@ class AudioSoundPlayer implements SoundPlayer { assetToPlay, )); } - player.onPlayerStateChanged - .listen((s) => s == PlayerState.completed ? _onStop?.call() : null); + player.onPlayerStateChanged.listen((s) => _listen(s)); + } + + void _listen(PlayerState s) { + logIt('Player state changed: $s'); + if (s == PlayerState.completed) { + stop(); + } } @override Future stop() async { - player.stop(); + _onStop?.call(); } @override @@ -44,4 +51,8 @@ class AudioSoundPlayer implements SoundPlayer { {bool preload = true, Duration? initialPosition}) async { // return player.setAsset(assetPath); } + + void logIt(String msg) { + debugPrint('SoundLoop: $msg'); + } }