feat: setting background music to 60% for better tuning

pull/424/head
Erick Zanardo 3 years ago
parent 1316712383
commit cb2104739c

@ -59,7 +59,7 @@ typedef CreateAudioPool = Future<AudioPool> Function(
typedef PlaySingleAudio = Future<void> Function(String); typedef PlaySingleAudio = Future<void> Function(String);
/// Defines the contract for looping a single audio. /// Defines the contract for looping a single audio.
typedef LoopSingleAudio = Future<void> Function(String); typedef LoopSingleAudio = Future<void> Function(String, {double volume});
/// Defines the contract for pre fetching an audio. /// Defines the contract for pre fetching an audio.
typedef PreCacheSingleAudio = Future<void> Function(String); typedef PreCacheSingleAudio = Future<void> Function(String);
@ -111,8 +111,8 @@ class _LoopAudio extends _Audio {
Future<void> load() => preCacheSingleAudio(prefixFile(path)); Future<void> load() => preCacheSingleAudio(prefixFile(path));
@override @override
void play() { void play({double volume = 1}) {
loopSingleAudio(prefixFile(path)); loopSingleAudio(prefixFile(path), volume: volume);
} }
} }
@ -130,14 +130,30 @@ class _SingleLoopAudio extends _LoopAudio {
bool _playing = false; bool _playing = false;
@override @override
void play() { void play({double volume = 1}) {
if (!_playing) { if (!_playing) {
super.play(); super.play(volume: volume);
_playing = true; _playing = true;
} }
} }
} }
class _BackgroundMusicAudio extends _SingleLoopAudio {
_BackgroundMusicAudio({
required PreCacheSingleAudio preCacheSingleAudio,
required LoopSingleAudio loopSingleAudio,
}) : super(
preCacheSingleAudio: preCacheSingleAudio,
loopSingleAudio: loopSingleAudio,
path: Assets.music.background,
);
@override
void play({double volume = .6}) {
super.play(volume: volume);
}
}
class _RandomABAudio extends _Audio { class _RandomABAudio extends _Audio {
_RandomABAudio({ _RandomABAudio({
required this.createAudioPool, required this.createAudioPool,
@ -292,10 +308,9 @@ class PinballAudioPlayer {
path: Assets.sfx.cowMoo, path: Assets.sfx.cowMoo,
duration: const Duration(seconds: 2), duration: const Duration(seconds: 2),
), ),
PinballAudio.backgroundMusic: _SingleLoopAudio( PinballAudio.backgroundMusic: _BackgroundMusicAudio(
preCacheSingleAudio: _preCacheSingleAudio, preCacheSingleAudio: _preCacheSingleAudio,
loopSingleAudio: _loopSingleAudio, loopSingleAudio: _loopSingleAudio,
path: Assets.music.background,
), ),
}; };
} }

@ -33,7 +33,7 @@ class _MockPlaySingleAudio extends Mock {
} }
class _MockLoopSingleAudio extends Mock { class _MockLoopSingleAudio extends Mock {
Future<void> onCall(String url); Future<void> onCall(String url, {double volume});
} }
abstract class _PreCacheSingleAudio { abstract class _PreCacheSingleAudio {
@ -77,7 +77,8 @@ void main() {
when(() => playSingleAudio.onCall(any())).thenAnswer((_) async {}); when(() => playSingleAudio.onCall(any())).thenAnswer((_) async {});
loopSingleAudio = _MockLoopSingleAudio(); loopSingleAudio = _MockLoopSingleAudio();
when(() => loopSingleAudio.onCall(any())).thenAnswer((_) async {}); when(() => loopSingleAudio.onCall(any(), volume: any(named: 'volume')))
.thenAnswer((_) async {});
preCacheSingleAudio = _MockPreCacheSingleAudio(); preCacheSingleAudio = _MockPreCacheSingleAudio();
when(() => preCacheSingleAudio.onCall(any())).thenAnswer((_) async {}); when(() => preCacheSingleAudio.onCall(any())).thenAnswer((_) async {});
@ -443,8 +444,10 @@ void main() {
audioPlayer.play(PinballAudio.backgroundMusic); audioPlayer.play(PinballAudio.backgroundMusic);
verify( verify(
() => loopSingleAudio () => loopSingleAudio.onCall(
.onCall('packages/pinball_audio/${Assets.music.background}'), 'packages/pinball_audio/${Assets.music.background}',
volume: .6,
),
).called(1); ).called(1);
}); });
@ -455,8 +458,10 @@ void main() {
..play(PinballAudio.backgroundMusic); ..play(PinballAudio.backgroundMusic);
verify( verify(
() => loopSingleAudio () => loopSingleAudio.onCall(
.onCall('packages/pinball_audio/${Assets.music.background}'), 'packages/pinball_audio/${Assets.music.background}',
volume: .6,
),
).called(1); ).called(1);
}); });
}); });

Loading…
Cancel
Save