buildStartWebAudioButton function
Build a button for starting web audio.
This function relies on a SoLoudScope being somewhere in the widget tree.
Implementation
Widget buildStartWebAudioButton(
final BuildContext context,
final VoidCallback onDone,
) => SimpleScaffold(
title: 'Start Audio',
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: TextButton(
autofocus: true,
onPressed: () async {
final audio = SoLoud.instance;
if (!audio.isInitialized) {
final sourceLoader = context.sourceLoader;
await audio.init(
automaticCleanup: sourceLoader.automaticCleanup,
bufferSize: sourceLoader.bufferSize,
channels: sourceLoader.channels,
device: sourceLoader.playbackDevice,
sampleRate: sourceLoader.sampleRate,
);
}
onDone();
},
child: const Text('Start audio'),
),
),
],
),
);