2 votes

Passer une chaîne à une classe dans Flutter ?

J'utilise le streaming_audio_flutter_demo sur Github. https://github.com/suragch/streaming_audio_flutter_demo

Celui-ci possède une classe qui fournit un ValueListenableBuilder et un curseur ainsi que des commandes de lecture et de pause pour mon application.

Le seul problème est que j'aimerais remplacer l'URL de l'exemple par la mienne ;

static const url = 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3';

Mais je ne sais pas comment le transmettre à la classe à partir de la page principale de mon application. Voici le code de la classe PageManager ;

 class PageManager {
  final progressNotifier = ValueNotifier<ProgressBarState>(
    ProgressBarState(
      current: Duration.zero,
      buffered: Duration.zero,
      total: Duration.zero,
    ),
  );
  final buttonNotifier = ValueNotifier<ButtonState>(ButtonState.paused);

  late AudioPlayer _audioPlayer;
  static const url = 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3';

  PageManager() {
    _init();
  }

  void _init() async {
    // initialize the song
    _audioPlayer = AudioPlayer();
    await _audioPlayer.setUrl(url);        
  }  
}

La chaîne que je dois transmettre ressemble à ceci ;

_current?.path

Comment puis-je accéder au

static const url = 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3';

à partir de la page principale de mon application ?

2voto

Hasan Abbasi Points 164

Remplacer

static const url = 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3';

  PageManager() {
    _init();
  }

avec

String url; // don't use const variable!
PageManager({this.url="You can set a default URL here"}){
   _init();
}

vous pouvez maintenant l'utiliser dans votre main.dart comme suit :

_pageManager = PageManager(url: "YOUR URL");

Faites-moi part du résultat.

1voto

Hasan Abbasi Points 164

Vous pouvez utiliser un constructeur. Dans ce cas, vous pouvez utiliser un constructeur. PageManager ajouter cette fonction :

String url;
PageManager(this.url);

then you can define an object related to this class as follow:
PageManager pageManager = new PageManager("YOUR URL");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X