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);
/// 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.
typedef PreCacheSingleAudio = Future<void> Function(String);
@ -111,8 +111,8 @@ class _LoopAudio extends _Audio {
Future<void> load() => preCacheSingleAudio(prefixFile(path));
@override
void play() {
loopSingleAudio(prefixFile(path));
void play({double volume = 1}) {
loopSingleAudio(prefixFile(path), volume: volume);
}
}
@ -130,14 +130,30 @@ class _SingleLoopAudio extends _LoopAudio {
bool _playing = false;
@override
void play() {
void play({double volume = 1}) {
if (!_playing) {
super.play();
super.play(volume: volume);
_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 {
_RandomABAudio({
required this.createAudioPool,
@ -292,10 +308,9 @@ class PinballAudioPlayer {
path: Assets.sfx.cowMoo,
duration: const Duration(seconds: 2),
),
PinballAudio.backgroundMusic: _SingleLoopAudio(
PinballAudio.backgroundMusic: _BackgroundMusicAudio(
preCacheSingleAudio: _preCacheSingleAudio,
loopSingleAudio: _loopSingleAudio,
path: Assets.music.background,
),
};
}

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

Loading…
Cancel
Save