2017-09-29 2771 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