2017-09-29 2777 views
2

如何播放flutter audioplayer 0.2.0本地mp3文件。如何播放本地mp3文件与flutter audioplayer插件

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); 
} 

我能得到本地资产的路径从rootBundle? 我可以在audioPlayer上支付ByteData的音频吗?

回答

4

audioplayer插件目前仅支持网络路径和文件。您可以将资产转移到一个临时文件夹,并用此代码播放:

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

太谢谢你了。 我能用这种方式播放mp3。 – granoeste