useAudio function

AudioPlayer useAudio({
  1. String? userAgent,
  2. bool handleInterruptions = true,
  3. bool androidApplyAudioAttributes = true,
  4. bool handleAudioSessionActivation = true,
  5. AudioLoadConfiguration? audioLoadConfiguration,
  6. AudioPipeline? audioPipeline,
})

plays audio using just_audio(ref link) plugin, and exposes its controls. ref link

Implementation

AudioPlayer useAudio({
  String? userAgent,
  bool handleInterruptions = true,
  bool androidApplyAudioAttributes = true,
  bool handleAudioSessionActivation = true,
  AudioLoadConfiguration? audioLoadConfiguration,
  AudioPipeline? audioPipeline,
}) {
  final audio = useMemoized(
    () => AudioPlayer(
      userAgent: userAgent,
      handleInterruptions: handleInterruptions,
      androidApplyAudioAttributes: androidApplyAudioAttributes,
      handleAudioSessionActivation: handleAudioSessionActivation,
      audioLoadConfiguration: audioLoadConfiguration,
      audioPipeline: audioPipeline,
    ),
    [
      userAgent,
      handleInterruptions,
      androidApplyAudioAttributes,
      handleAudioSessionActivation,
      audioLoadConfiguration,
      audioPipeline,
    ],
  );

  useEffect(() {
    return () {
      audio.stop();
      audio.dispose();
    };
  }, [
    userAgent,
    handleInterruptions,
    androidApplyAudioAttributes,
    handleAudioSessionActivation,
    audioLoadConfiguration,
    audioPipeline,
  ]);

  return audio;
}