buildStartWebAudioButton function

Widget buildStartWebAudioButton(
  1. BuildContext context,
  2. VoidCallback onDone
)

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'),
        ),
      ),
    ],
  ),
);