最初はこう書きました
//音を鳴らす
var audioPlayer = AudioPlayer();
audioPlayer.setPlayerMode(PlayerMode.lowLatency);
audioPlayer.setReleaseMode(ReleaseMode.loop);
audioPlayer.play(AssetSource('sounds/1.mp3'));
しかし、エラーが出続けました:
Unhandled Exception: Unable to load asset:
これが私のディレクトリです
その後、ソースコードを詳しく調べました
// rootBundleからローカルアセットを読み込む
final byteData = await rootBundle.load('$prefix$fileName');
```dart
prefixがあることに気付きました
さらに上を見ると
```dart
/// これはあなたのアセットフォルダ内のファイルがあるパスです。
///
/// 例えば、Flameはプレフィックス 'assets/audio/' を使用します。
/// (最後のスラッシュを含める必要があります!)。
/// デフォルトのプレフィックス(提供されていない場合)は 'assets/' です。
/// あなたのファイルは <prefix><fileName> で見つかります(したがって、末尾のスラッシュが
/// 重要です)。
String prefix;
AudioCache({this.prefix = 'assets/'});
なるほど、デフォルトのルートディレクトリは assets / です。
音声ファイルを assets / に移動するか、この prefix を直接変更することができます
audioPlayer.audioCache.prefix = '';
⬆️この行を追加すれば大丈夫です
最終的なコード⬇️
//音を鳴らす
var audioPlayer = AudioPlayer();
audioPlayer.setPlayerMode(PlayerMode.lowLatency);
audioPlayer.setReleaseMode(ReleaseMode.loop);
audioPlayer.audioCache.prefix = '';
audioPlayer.play(AssetSource('sounds/1.mp3'));