Skip to content

Commit

Permalink
feat: setting background music to 60% for better tuning (flutter#424)
Browse files Browse the repository at this point in the history
* feat: setting background music to 60% for better tuning

* better code
  • Loading branch information
erickzanardo authored May 9, 2022
1 parent 37f35dc commit bab088f
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
9 changes: 7 additions & 2 deletions packages/pinball_audio/lib/src/pinball_audio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -101,18 +101,20 @@ class _LoopAudio extends _Audio {
required this.preCacheSingleAudio,
required this.loopSingleAudio,
required this.path,
this.volume,
});

final PreCacheSingleAudio preCacheSingleAudio;
final LoopSingleAudio loopSingleAudio;
final String path;
final double? volume;

@override
Future<void> load() => preCacheSingleAudio(prefixFile(path));

@override
void play() {
loopSingleAudio(prefixFile(path));
loopSingleAudio(prefixFile(path), volume: volume ?? 1);
}
}

Expand All @@ -121,10 +123,12 @@ class _SingleLoopAudio extends _LoopAudio {
required PreCacheSingleAudio preCacheSingleAudio,
required LoopSingleAudio loopSingleAudio,
required String path,
double? volume,
}) : super(
preCacheSingleAudio: preCacheSingleAudio,
loopSingleAudio: loopSingleAudio,
path: path,
volume: volume,
);

bool _playing = false;
Expand Down Expand Up @@ -296,6 +300,7 @@ class PinballAudioPlayer {
preCacheSingleAudio: _preCacheSingleAudio,
loopSingleAudio: _loopSingleAudio,
path: Assets.music.background,
volume: .6,
),
};
}
Expand Down
17 changes: 11 additions & 6 deletions packages/pinball_audio/test/src/pinball_audio_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {});
Expand Down Expand Up @@ -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);
});

Expand All @@ -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);
});
});
Expand Down

0 comments on commit bab088f

Please sign in to comment.