anchor.diff:      );
     }
   }
  -
  -class PlayerWidget extends StatefulWidget {
  -  final MyAudio myAudio;
  -
  -  @override
  -  _PlayerWidgetState createState() => _PlayerWidgetState();
  -
  -  const PlayerWidget({
  -    @required this.myAudio,
  -  });
  -}
  -
  -class _PlayerWidgetState extends State<PlayerWidget> {
  -  AssetsAudioPlayer _assetsAudioPlayer = AssetsAudioPlayer.newPlayer();
  -
  -  @override
  -  Widget build(BuildContext context) {
  -    return StreamBuilder(
  -        stream: _assetsAudioPlayer.loopMode,
  -        initialData: false,
  -        builder: (context, snapshotLooping) {
  -          final LoopMode loopMode = snapshotLooping.data;
  -          return StreamBuilder(
  -              stream: _assetsAudioPlayer.isPlaying,
  -              initialData: false,
  -              builder: (context, snapshotPlaying) {
  -                final isPlaying = snapshotPlaying.data;
  -                return Neumorphic(
  -                  margin: EdgeInsets.all(8),
  -                  style: NeumorphicStyle(
  -                    boxShape:
  -                        NeumorphicBoxShape.roundRect(BorderRadius.circular(8)),
  -                  ),
  -                  padding: const EdgeInsets.all(12.0),
  -                  child: Column(
  -                    children: <Widget>[
  -                      Row(
  -                        children: <Widget>[
  -                          Expanded(
  -                            flex: 3,
  -                            child: Row(
  -                              children: <Widget>[
  -                                Padding(
  -                                  padding: const EdgeInsets.all(8.0),
  -                                  child: Neumorphic(
  -                                    style: NeumorphicStyle(
  -                                      boxShape: NeumorphicBoxShape.circle(),
  -                                      depth: 8,
  -                                      surfaceIntensity: 1,
  -                                      shape: NeumorphicShape.concave,
  -                                    ),
  -                                    child: Image.network(
  -                                      widget.myAudio.imageUrl,
  -                                      height: 50,
  -                                      width: 50,
  -                                      fit: BoxFit.cover,
  -                                    ),
  -                                  ),
  -                                ),
  -                                Expanded(
  -                                  child: Padding(
  -                                    padding: const EdgeInsets.all(8.0),
  -                                    child: Text(this.widget.myAudio.name),
  -                                  ),
  -                                ),
  -                              ],
  -                            ),
  -                          ),
  -                          Expanded(
  -                            flex: 2,
  -                            child: PlayingControlsSmall(
  -                              loopMode: loopMode,
  -                              isPlaying: isPlaying,
  -                              toggleLoop: () {
  -                                _assetsAudioPlayer.toggleLoop();
  -                              },
  -                              onPlay: () {
  -                                if (_assetsAudioPlayer.current.value == null) {
  -                                  _assetsAudioPlayer.open(widget.myAudio.audio,
  -                                      autoStart: true);
  -                                } else {
  -                                  _assetsAudioPlayer.playOrPause();
  -                                }
  -                              },
  -                            ),
  -                          ),
  -                        ],
  -                      ),
  -                      StreamBuilder(
  -                          stream: _assetsAudioPlayer.realtimePlayingInfos,
  -                          builder: (context, snapshot) {
  -                            if (!snapshot.hasData) {
  -                              return SizedBox();
  -                            }
  -                            RealtimePlayingInfos infos = snapshot.data;
  -                            return PositionSeekWidget(
  -                              seekTo: (to) {
  -                                _assetsAudioPlayer.seek(to);
  -                              },
  -                              duration: infos.duration,
  -                              currentPosition: infos.currentPosition,
  -                            );
  -                          }),
  -                    ],
  -                  ),
  -                );
  -              });
  -        });
  -  }
  -}
  
positive.code:             child: Padding(
                padding: const EdgeInsets.only(bottom: 48.0),
                child: Column(
                  children: this
                      .audios
                      .map(
                        (e) => PlayerWidget(
                          myAudio: e,
                        ),
                      )
                      .toList(),
                ),
              ),
            ),
  
negative.code: }
  
  class _MyAppState extends State<MyApp> {
    final audios = <Audio>[
      //Audio.network(
      //  "https://d14nt81hc5bide.cloudfront.net/U7ZRzzHfk8pvmW28sziKKPzK",
      //  metas: Metas(
      //    id: "Invalid",
      //    title: "Invalid",
      //    artist: "Florent Champigny",
      //    album: "OnlineAlbum",
      //    image: MetasImage.network(
      //        "https://image.shutterstock.com/image-vector/pop-music-text-art-colorful-600w-515538502.jpg"),
      //  ),
      //),
      Audio.network(
        "https://files.freemusicarchive.org/storage-freemusicarchive-org/music/Music_for_Video/springtide/Sounds_strange_weird_but_unmistakably_romantic_Vol1/springtide_-_03_-_We_Are_Heading_to_the_East.mp3",
        metas: Metas(
          id: "Online",
          title: "Online",
          artist: "Florent Champigny",
          album: "OnlineAlbum",
          // image: MetasImage.network("https://www.google.com")
          image: MetasImage.network(
              "https://image.shutterstock.com/image-vector/pop-music-text-art-colorful-600w-515538502.jpg"),
        ),
      ),
      Audio(
        "assets/audios/rock.mp3",
        //playSpeed: 2.0,
        metas: Metas(
          id: "Rock",
          title: "Rock",
          artist: "Florent Champigny",
          album: "RockAlbum",
          image: MetasImage.network(
              "https://static.radio.fr/images/broadcasts/cb/ef/2075/c300.png"),
        ),
      ),
      Audio(
        "assets/audios/2 country.mp3",
        metas: Metas(
          id: "Country",
          title: "Country",
          artist: "Florent Champigny",
          album: "CountryAlbum",
          image: MetasImage.asset("assets/images/country.jpg"),
        ),
      ),
      Audio(
        "assets/audios/electronic.mp3",
        metas: Metas(
          id: "Electronics",
          title: "Electronic",
          artist: "Florent Champigny",
          album: "ElectronicAlbum",
          image: MetasImage.network(
              "https://i.ytimg.com/vi/nVZNy0ybegI/maxresdefault.jpg"),
        ),
      ),
      Audio(
        "assets/audios/hiphop.mp3",
        metas: Metas(
          id: "Hiphop",
          title: "HipHop",
          artist: "Florent Champigny",
          album: "HipHopAlbum",
          image: MetasImage.network(
              "https://beyoudancestudio.ch/wp-content/uploads/2019/01/apprendre-danser.hiphop-1.jpg"),
        ),
      ),
      Audio(
        "assets/audios/pop.mp3",
        metas: Metas(
          id: "Pop",
          title: "Pop",
          artist: "Florent Champigny",
          album: "PopAlbum",
          image: MetasImage.network(
              "https://image.shutterstock.com/image-vector/pop-music-text-art-colorful-600w-515538502.jpg"),
        ),
      ),
      Audio(
        "assets/audios/instrumental.mp3",
        metas: Metas(
          id: "Instrumental",
          title: "Instrumental",
          artist: "Florent Champigny",
          album: "InstrumentalAlbum",
          image: MetasImage.network(
              "https://i.ytimg.com/vi/zv_0dSfknBc/maxresdefault.jpg"),
        ),
      ),
    ];
  
    //final AssetsAudioPlayer _assetsAudioPlayer = AssetsAudioPlayer();
    AssetsAudioPlayer get _assetsAudioPlayer => AssetsAudioPlayer.withId("music");
    final List<StreamSubscription> _subscriptions = [];
  
    @override
    void initState() {
      //_subscriptions.add(_assetsAudioPlayer.playlistFinished.listen((data) {
      //  print("finished : $data");
      //}));
      _subscriptions.add(_assetsAudioPlayer.playlistAudioFinished.listen((data) {
        print("playlistAudioFinished : $data");
      }));
      _subscriptions.add(_assetsAudioPlayer.audioSessionId.listen((sessionId) {
        print("audioSessionId : $sessionId");
      }));
      //_subscriptions.add(_assetsAudioPlayer.current.listen((data) {
      //  print("current : $data");
      //}));
      //_subscriptions.add(_assetsAudioPlayer.onReadyToPlay.listen((audio) {
      //  print("onReadyToPlay : $audio");
      //}));
      //_subscriptions.add(_assetsAudioPlayer.isBuffering.listen((isBuffering) {
      //  print("isBuffering : $isBuffering");
      //}));
      //_subscriptions.add(_assetsAudioPlayer.playerState.listen((playerState) {
      //  print("playerState : $playerState");
      //}));
      //_subscriptions.add(_assetsAudioPlayer.isPlaying.listen((isplaying) {
      //  print("isplaying : $isplaying");
      //}));
      _subscriptions
          .add(AssetsAudioPlayer.addNotificationOpenAction((notification) {
        return false;
      }));
  
      super.initState();
      print(_assetsAudioPlayer.getCurrentAudioTitle);
    }
  
    @override
    void dispose() {
      _assetsAudioPlayer.dispose();
      print("dispose");
      super.dispose();
    }
  
    Audio find(List<Audio> source, String fromPath) {
      return source.firstWhere((element) => element.path == fromPath);
    }
  
    @override
  