showAudioOverlay function
Future<void>
showAudioOverlay({
- XFile? audioFile,
- String? audioUrl,
- required EditorController editorController,
- String uniqueId = '',
- Widget customWidgetBuilder(
- BuildContext context,
- dynamic onPlay(),
- dynamic onPause(),
- ValueNotifier<
bool> isPlay,
- required Completer<
bool> completer,
Implementation
Future<void> showAudioOverlay({
XFile? audioFile,
String? audioUrl,
required EditorController editorController,
String uniqueId = '',
Widget Function(BuildContext context, Function() onPlay, Function() onPause,
ValueNotifier<bool> isPlay)?
customWidgetBuilder,
required Completer<bool> completer,
}) async {
assert(audioFile != null || audioUrl != null);
if (_overlayAnimationController == null) {
return;
}
_editorController = editorController;
const Curve curve = Curves.easeOut;
editorController.isShowingOverlay.value = true;
_overlayEntry = OverlayEntry(
builder: (BuildContext context) {
return AnimatedBuilder(
animation: _overlayAnimationController!,
builder: (BuildContext context, Widget? child) {
final double animationValue =
curve.transform(_overlayAnimationController!.value);
return Opacity(
opacity: animationValue,
child: AudioOverlay(
editorController: editorController,
file: audioFile,
url: audioUrl,
uniqueId: uniqueId,
screen: MediaQuery.of(context).size,
customWidgetBuilder: customWidgetBuilder,
completer: completer,
),
);
},
);
},
);
if (_overlayEntry != null) {
await addToOverlay(_overlayEntry!);
await _overlayAnimationController!.forward();
}
}