build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Implementation

@override
Widget build(BuildContext context) {
  return PopScope(
    onPopInvokedWithResult: (didPop, result) async{
      if(didPop){  }
      await controller.disposePlayer();
    //   Get.back();
    },
    child: Localizations(
      locale: Localizations.localeOf(context), // Use host app locale
      delegates: const [
        S.delegate, // Plugin-specific localization
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      child: Builder(
        builder: (context) {
          return PlayerContainerWidget(
            title: controller.title,
            showBackButton: true,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                /// Displays the audio thumbnail and track name.
                Expanded(
                  child: Obx(() => AudioThumbNameWidget(
                    metaData: controller.currentMetaData.value,
                  ),),
                ),

                /// Control buttons for play, pause, skip, and volume adjustments.
                const ControlButtonsWidget(),

                /// Seek bar for tracking playback progress.
                Obx(
                      () => SeekBar(
                    duration: controller.duration.value,
                    position: controller.position.value,
                    bufferedPosition: controller.bufferedPosition.value,
                    onChangeEnd: (newPosition) {
                      controller.player.seek(newPosition);
                    },
                  ),
                ),
                const SizedBox(height: 8.0),

                /// Displays loop and shuffle buttons along with a playlist title.
                _buildAudioActionsButtons(context),

                /// Displays the list of audio tracks if more than one exists.
                Obx(
                      () => controller.playlist.value == null
                      ? const SizedBox() // Hide if no playlist is available
                      : controller.playlist.value?.length == 1
                      ? const SizedBox() // Hide if only one track is present
                      : const AudioListWidget(),
                ),
              ],
            ),
          );
        },
      ),
    ),
  );
}