Как сопоставить или индексировать изображение и звук во флаттере с помощью Swiper(Slider)?
Как сопоставить или индексировать изображение и звук во флаттере
Я пытаюсь сделать приложение Slider, если слайдер открыт, воспроизводит звук
Было сохранено 26 изображений и 26 аудио
Если открыт первый слайд, воспроизводится первое аудио и 2-е изображение 2-е аудио
Я использую Swiper flutter_swiper: ^1.1.4 для перемещения ползунка было установлено автоматическое воспроизведение
Я использую аудиоплеер assets_audio_player: ^2.0.10
Я пытаюсь создать полностью автономное приложение, поэтому я использую assets_audio_player: ^2.0.10
import 'package:flutter/material.dart';
import 'package:flutter_swiper/flutter_swiper.dart';
import 'package:assets_audio_player/assets_audio_player.dart';
// ignore: must_be_immutable
class Country extends StatelessWidget {
Country({Key key}) : super(key: key);
List images = [
'images/Country/a.jpg',
'images/Country/b.jpg',
'images/Country/c.jpg',
'images/Country/d.jpg',
'images/Country/e.jpg',
'images/Country/f.jpg',
'images/Country/g.jpg',
'images/Country/h.jpg',
'images/Country/i.jpg',
'images/Country/j.jpg',
'images/Country/k.jpg',
'images/Country/l.jpg',
'images/Country/m.jpg',
'images/Country/n.jpg',
'images/Country/o.jpg',
'images/Country/p.jpg',
'images/Country/q.jpg',
'images/Country/r.jpg',
'images/Country/s.jpg',
'images/Country/t.jpg',
'images/Country/u.jpg',
'images/Country/v.jpg',
'images/Country/w.jpg',
'images/Country/x.jpg',
'images/Country/y.jpg',
'images/Country/z.jpg',
];
List<T> map<T>(
List list,
Function handler,
) {
List<T> result = [];
for (var i = 0; i < list.length; i++) {
result.add(handler(i, list[i]));
}
return result;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Swipper"),
),
body: Center(
child: Container(
height: 500.0,
width: 370.0,
child: new Swiper(
itemHeight: 400.0,
itemBuilder: (BuildContext context, int index) {
return new Image.asset(
images[index],
fit: BoxFit.fill,
);
},
autoplay: true,
itemCount: images.length,
autoplayDelay: 5000,
control: new SwiperControl(color: Colors.redAccent),
onIndexChanged: (index) {
onPlayAudio();
},
)),
),
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(
// ignore: deprecated_member_use
title: Text("kumar"),
icon: Icon(Icons.home),
),
BottomNavigationBarItem(
// ignore: deprecated_member_use
title: Text("kumar"),
icon: Icon(Icons.backpack_sharp)),
],
onTap: (int index) {
Navigator.pop(
context,
);
},
),
);
}
}
void onPlayAudio() async {
AssetsAudioPlayer assetsAudioPlayer = AssetsAudioPlayer();
assetsAudioPlayer.open(
Playlist(
audios: [
Audio("images/alpha/a.mp3"),
Audio("images/alpha/b.mp3"),
Audio("images/alpha/c.mp3"),
Audio("images/alpha/d.mp3"),
Audio("images/alpha/e.mp3"),
Audio("images/alpha/f.mp3"),
Audio("images/alpha/g.mp3"),
Audio("images/alpha/h.mp3"),
Audio("images/alpha/i.mp3"),
Audio("images/alpha/j.mp3"),
Audio("images/alpha/k.mp3"),
Audio("images/alpha/l.mp3"),
Audio("images/alpha/m.mp3"),
Audio("images/alpha/n.mp3"),
Audio("images/alpha/o.mp3"),
Audio("images/alpha/p.mp3"),
Audio("images/alpha/q.mp3"),
Audio("images/alpha/r.mp3"),
Audio("images/alpha/s.mp3"),
Audio("images/alpha/t.mp3"),
Audio("images/alpha/u.mp3"),
Audio("images/alpha/v.mp3"),
Audio("images/alpha/w.mp3"),
Audio("images/alpha/x.mp3"),
Audio("images/alpha/y.mp3"),
Audio("images/alpha/z.mp3"),
],
),
autoStart: true,
playInBackground: PlayInBackground.disabledPause,
loopMode: LoopMode.playlist //loop the full playlist
);
assetsAudioPlayer.next();
assetsAudioPlayer.previous();
assetsAudioPlayer.playlistPlayAtIndex(0);
assetsAudioPlayer.stop();
assetsAudioPlayer.playOrPause();
assetsAudioPlayer.play();
assetsAudioPlayer.pause();
}