как воспроизводить песни, извлеченные из хранилища устройства, с помощью just-audio api

      import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:typed_data';
import 'package:boomwarp/main.dart';
import 'package:just_audio/just_audio.dart';

import 'package:audio_service/audio_service.dart';
import 'package:flutter_audio_query/flutter_audio_query.dart';

class slist extends StatefulWidget {
 const slist({Key key}) : super(key: key);
  @override
_slistState createState() => _slistState();
 }

class _slistState extends State<slist> {
 final FlutterAudioQuery audioQuery = FlutterAudioQuery();
final player = AudioPlayer();
   List<SongInfo> songs = [];

  @override
 void initState() {
  super.initState();
  getAllSongs();
 }

 Future<List<SongInfo>> getAllSongs() async {
songs = await audioQuery.getSongs();
return songs;
  }

  @override
  Widget build(BuildContext context) {
return Scaffold(
  floatingActionButton: FloatingActionButton.extended(
    label: Text('shuffle'),
    icon: Icon(
      Icons.shuffle,
      color: Colors.amber,
    ),
    backgroundColor: Colors.indigo[300],
  ),
  backgroundColor: Colors.grey[900],
  floatingActionButtonLocation: FloatingActionButtonLocation.endTop,
  body: FutureBuilder(
    future: getAllSongs(),
    builder: (context, item) {
      if (item.data == null)
        return const Center(
          child: CircularProgressIndicator(),
        );

      // Empty list
      if (item.data.isEmpty) {
        return const Center(
          child: Text(
            "Nothing found!",
            style: TextStyle(
              color: Colors.indigo,
            ),
            textScaleFactor: 2,
          ),
        );
      }

      // Load items
      List<SongInfo> songs = item.data;
      return ListView.builder(
        itemCount: songs.length,
        itemBuilder: (context, index) {
          return ListTile(
              onTap: () {},     ///want to play music oce tap
              title: Text(
                songs[index].title,
                maxLines: 1,
                overflow: TextOverflow.ellipsis,
                style: TextStyle(color: Colors.indigo.shade300),
              ),
              subtitle: Text(
                songs[index].artist,
                style: TextStyle(color: Colors.white70),
              ),
              leading: (songs[index].albumArtwork == null)
                  ? FutureBuilder<Uint8List>(
                      future: audioQuery.getArtwork(
                          type: ResourceType.SONG,
                          id: songs[index].id,
                          size: Size(100, 100)),
                      builder: (_, snapshot) {
                        if (snapshot.data == null)
                          return Card(
                            elevation: 5,
                            child: CircularProgressIndicator(),
                            shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(7.0),
                            ),
                          );
                        if (snapshot.data.isEmpty)
                          return Card(
                            elevation: 5,
                            clipBehavior: Clip.antiAlias,
                            color: Colors.grey.shade800,
                            child: SizedBox(
                              height: 50.0,
                              width: 50.0,
                              child: Icon(
                                Icons.music_note,
                                color: Colors.grey.shade900,
                              ),
                            ),
                            shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(7.0),
                            ),
                          );

                        return Card(
                          color: Colors.transparent,
                          clipBehavior: Clip.antiAlias,
                          child: SizedBox(
                            height: 50.0,
                            width: 50.0,
                            child: Image(
                                fit: BoxFit.cover,
                                image: MemoryImage(snapshot.data)),
                          ),
//                         ),
                        );
                      })
                  : null);
          },
      );
    },
  ),
);
  }

}

я хочу воспроизвести песню, прослушиваемую на устройстве, с использованием just_audio api, у меня возникли трудности с воспроизведением песен после прослушивания, буду признателен, если мне предложат решение или помощь, я действительно разочаровывался, пытаясь сделать это в течение нескольких месяцев и я, наверное, выгораю, буду очень признателен, если мне ответят спасибо

0 ответов