fix: throttle dino audio (#457)

pull/462/head
Allison Ryan 2 years ago committed by GitHub
parent d2dd83ff66
commit 1ee4557855
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -279,10 +279,11 @@ class PinballAudioPlayer {
playSingleAudio: _playSingleAudio, playSingleAudio: _playSingleAudio,
path: Assets.sfx.sparky, path: Assets.sfx.sparky,
), ),
PinballAudio.dino: _SimplePlayAudio( PinballAudio.dino: _ThrottledAudio(
preCacheSingleAudio: _preCacheSingleAudio, preCacheSingleAudio: _preCacheSingleAudio,
playSingleAudio: _playSingleAudio, playSingleAudio: _playSingleAudio,
path: Assets.sfx.dino, path: Assets.sfx.dino,
duration: const Duration(seconds: 6),
), ),
PinballAudio.dash: _SimplePlayAudio( PinballAudio.dash: _SimplePlayAudio(
preCacheSingleAudio: _preCacheSingleAudio, preCacheSingleAudio: _preCacheSingleAudio,

@ -454,6 +454,32 @@ void main() {
), ),
).called(1); ).called(1);
}); });
test('only plays the sound again after 6 seconds', () async {
final clock = _MockClock();
await withClock(clock, () async {
when(clock.now).thenReturn(DateTime(2022));
await Future.wait(
audioPlayer.load().map((loadableBuilder) => loadableBuilder()),
);
audioPlayer
..play(PinballAudio.dino)
..play(PinballAudio.dino);
verify(
() => playSingleAudio
.onCall('packages/pinball_audio/${Assets.sfx.dino}'),
).called(1);
when(clock.now).thenReturn(DateTime(2022, 1, 1, 1, 6));
audioPlayer.play(PinballAudio.dino);
verify(
() => playSingleAudio
.onCall('packages/pinball_audio/${Assets.sfx.dino}'),
).called(1);
});
});
}); });
group('android', () { group('android', () {

Loading…
Cancel
Save