2017-09-29 3 views
2

Comment lire le fichier mp3 local avec audioplayer 0.2.0 dans Flutter.Comment lire le fichier mp3 local avec plugin audioplayer dans Flutter

pubspec.yaml

flutter: 
    assets: 
    - sounds/music.mp3 

main.dart

Future<ByteData> loadAsset() async { 
    return await rootBundle.load('sounds/music.mp3'); 
} 

// FIXME: This code is not working. 
Future playLocal() async { 
    final result = await audioPlayer.play(loadAsset()); 
    if (result == 1) setState(() => playerState = PlayerState.playing); 
} 

Puis-je obtenir le chemin d'actifs locaux de rootBundle? Puis-je payer de l'audio à partir de ByteData sur le lecteur audio?

Répondre

4

Le plug-in audioplayer prend actuellement uniquement en charge les chemins d'accès et les fichiers réseau. Vous pouvez déplacer un atout dans un dossier temporaire et jouer avec ce code:

import 'package:path_provider/path_provider.dart'; 

...

final file = new File('${(await getTemporaryDirectory()).path}/music.mp3'); 
await file.writeAsBytes((await loadAsset()).buffer.asUint8List()); 
final result = await audioPlayer.play(file.path, isLocal: true); 
+0

Merci beaucoup. J'étais capable de jouer du mp3 de cette façon. – granoeste