#android #flutter #dart
Вопрос:
Я создаю музыкальный плеер, который переходит в поле песни со страницы музыкального проигрывателя.. Когда я выбираю песню в поле песни, она открывается на страницу музыкального проигрывателя с новыми аргументами (информация о выбранной песне).
страница музыкального проигрывателя(небольшая часть)
class MusicPlayer extends StatefulWidget {
SongInfo songInfo;
String song2;
bool fromhome;
FlutterAudioQuery a = FlutterAudioQuery();
//Function changeTrack;
final GlobalKey<MusicPlayerState> key;
MusicPlayer({this.songInfo, this.song2, this.fromhome, this.key})
: super(key: key);
MusicPlayerState createState() => MusicPlayerState();
}
class MusicPlayerState extends State<MusicPlayer> {
double minimumValue = 0.0, maximumValue = 0.0, currentValue = 0.0;
String currentTime = '', endTime = '';
bool isPlaying = false;
bool isPlaying2 = false;
bool isStopped = true;
final AudioPlayer player = AudioPlayer();
final AudioPlayer player2 = AudioPlayer();
//noise_cancelling noise = noise_cancelling();
String song_path = '';
String output_path = '';
void initiatingstate() async {}
void initState() {
super.initState();
if (!widget.fromhome) {
//initiatingstate();
setSong1(widget.songInfo);
player.stop();
player2.stop();
song_path = widget.songInfo.filePath;
output_path = widget.song2;
// noise.denoise(song_path, output_path);
setSong2(widget.songInfo, output_path);
}
if (widget.fromhome) {}
}
Вот как я попытался задать параметры для перехода на нужную страницу музыкального проигрывателя в поле трек песни
Примечание:- страница музыкального проигрывателя всегда находится в одном шаге от страницы поля songtrack.
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => MusicPlayer(
//changeTrack: changeTrack,
songInfo: songs[currentIndex],
song2: "$output_path.wav",
fromhome: false,
key: key)));
Я знаю, что нехорошо нажимать на новую страницу каждый раз, когда звонит новая песня.
Поэтому я попробовал зайти с какой-нибудь ссылкой.
Navigator.of(context).pop(
[songs[currentIndex], "$output_path.wav", false, key]);
Но не сработало ): .
Знаете ли вы, как перейти на страницу музыкального проигрывателя с новыми параметрами, которые начинаются с новой песни..? заранее спасибо..
Комментарии:
1. Взгляните на унаследованный виджет или поставщика. TLDR Инкапсулирует поля в объект и вводит его в дерево виджетов через контекст