|
|
@ -101,18 +101,20 @@ class _LoopAudio extends _Audio {
|
|
|
|
required this.preCacheSingleAudio,
|
|
|
|
required this.preCacheSingleAudio,
|
|
|
|
required this.loopSingleAudio,
|
|
|
|
required this.loopSingleAudio,
|
|
|
|
required this.path,
|
|
|
|
required this.path,
|
|
|
|
|
|
|
|
this.volume,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final PreCacheSingleAudio preCacheSingleAudio;
|
|
|
|
final PreCacheSingleAudio preCacheSingleAudio;
|
|
|
|
final LoopSingleAudio loopSingleAudio;
|
|
|
|
final LoopSingleAudio loopSingleAudio;
|
|
|
|
final String path;
|
|
|
|
final String path;
|
|
|
|
|
|
|
|
final double? volume;
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Future<void> load() => preCacheSingleAudio(prefixFile(path));
|
|
|
|
Future<void> load() => preCacheSingleAudio(prefixFile(path));
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
void play({double volume = 1}) {
|
|
|
|
void play() {
|
|
|
|
loopSingleAudio(prefixFile(path), volume: volume);
|
|
|
|
loopSingleAudio(prefixFile(path), volume: volume ?? 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -121,39 +123,25 @@ class _SingleLoopAudio extends _LoopAudio {
|
|
|
|
required PreCacheSingleAudio preCacheSingleAudio,
|
|
|
|
required PreCacheSingleAudio preCacheSingleAudio,
|
|
|
|
required LoopSingleAudio loopSingleAudio,
|
|
|
|
required LoopSingleAudio loopSingleAudio,
|
|
|
|
required String path,
|
|
|
|
required String path,
|
|
|
|
|
|
|
|
double? volume,
|
|
|
|
}) : super(
|
|
|
|
}) : super(
|
|
|
|
preCacheSingleAudio: preCacheSingleAudio,
|
|
|
|
preCacheSingleAudio: preCacheSingleAudio,
|
|
|
|
loopSingleAudio: loopSingleAudio,
|
|
|
|
loopSingleAudio: loopSingleAudio,
|
|
|
|
path: path,
|
|
|
|
path: path,
|
|
|
|
|
|
|
|
volume: volume,
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
bool _playing = false;
|
|
|
|
bool _playing = false;
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
void play({double volume = 1}) {
|
|
|
|
void play() {
|
|
|
|
if (!_playing) {
|
|
|
|
if (!_playing) {
|
|
|
|
super.play(volume: volume);
|
|
|
|
super.play();
|
|
|
|
_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,
|
|
|
@ -308,9 +296,11 @@ class PinballAudioPlayer {
|
|
|
|
path: Assets.sfx.cowMoo,
|
|
|
|
path: Assets.sfx.cowMoo,
|
|
|
|
duration: const Duration(seconds: 2),
|
|
|
|
duration: const Duration(seconds: 2),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
PinballAudio.backgroundMusic: _BackgroundMusicAudio(
|
|
|
|
PinballAudio.backgroundMusic: _SingleLoopAudio(
|
|
|
|
preCacheSingleAudio: _preCacheSingleAudio,
|
|
|
|
preCacheSingleAudio: _preCacheSingleAudio,
|
|
|
|
loopSingleAudio: _loopSingleAudio,
|
|
|
|
loopSingleAudio: _loopSingleAudio,
|
|
|
|
|
|
|
|
path: Assets.music.background,
|
|
|
|
|
|
|
|
volume: .6,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|