Android studio “颤振”;音频“;音频文件目录不工作

Android studio “颤振”;音频“;音频文件目录不工作,android-studio,flutter,Android Studio,Flutter,我有一个简单的颤振应用程序,当点击狗的圆形化身时,它会播放吠声。如果我以以下方式将音频文件保存在pubspec.yaml文件中,那么它可以正常工作 flutter: uses-material-design: true assets: - assets/ - images/ 化身用一个FlatButton小部件包装,onPressed方法如下: onPressed: (){ audioCache.play('bark.mp3');

我有一个简单的颤振应用程序,当点击狗的圆形化身时,它会播放吠声。如果我以以下方式将音频文件保存在pubspec.yaml文件中,那么它可以正常工作

flutter:
  uses-material-design: true
  assets:
    - assets/
    - images/
化身用一个FlatButton小部件包装,onPressed方法如下:

 onPressed: (){
                  audioCache.play('bark.mp3');
                },
flutter:
  uses-material-design: true
  assets:
    - audios/
    - images/
但是,当我将音频文件保存在“audio”目录中时,情况就不同了,如下所示:

 onPressed: (){
                  audioCache.play('bark.mp3');
                },
flutter:
  uses-material-design: true
  assets:
    - audios/
    - images/
和onPressed方法:

onPressed: (){
                  audioCache.play('audios/bark.mp3');
                },
当我使用第二种方法保存音频文件时,会出现以下错误:

Cannot find asset: "assets/audios/bark.mp3"
有什么问题吗

下面是main.dart中的以下代码

import 'package:flutter/material.dart';
import 'package:audioplayers/audio_cache.dart';
import 'package:audioplayers/audioplayers.dart';
// The main function is the starting point.
void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {

  AudioCache audioCache;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    audioCache = AudioCache();
  }
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.indigo[300],
        body: SafeArea(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              FlatButton(
                onPressed: (){
                  audioCache.play('bark.mp3');
                },
                child: CircleAvatar(
                  radius: 50,
                  backgroundImage: AssetImage("images/doggo.jpg"),
                ),
              ),
              Text(
                "Roger Pupperino",
                style: TextStyle(
                  fontSize: 25,
                  fontWeight: FontWeight.bold,
                  color: Colors.white,
                  fontFamily: 'Pacifico',
                ),
              ),
              Text(
                "Goodest Boi Ever".toUpperCase(),
                style: TextStyle(
                  fontFamily: 'SourceSansPro',
                  color: Colors.indigo,
                  letterSpacing: 2.5,
                ),
              ),
              SizedBox(
                height: 20,
                width: 200,
                child: Divider(
                  color: Colors.indigo[300],
                ),
              ),
              Card(
                margin: EdgeInsets.symmetric(vertical: 10,horizontal: 25),
                color: Colors.white,
                child: ListTile(
                  leading: Icon(Icons.phone, color: Colors.indigo),
                  title: Text(
                    "+880 13033 84426",
                    style: TextStyle(
                      color: Colors.indigo,
                      fontFamily: 'Source Sans Pro',
                      fontSize: 20,
                    ),
                  ),
                ),
              ),
              Card(
                margin: EdgeInsets.symmetric(vertical: 10,horizontal: 25),
                color: Colors.white,
                child: ListTile(
                  leading: Icon(Icons.mail, color: Colors.indigo),
                  title:  Text(
                    "roger.goodboi@pup.com",
                    style: TextStyle(
                      color: Colors.indigo,
                      fontFamily: 'Source Sans Pro',
                      fontSize: 20,
                    ),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“包:AudioPlayer/audio_cache.dart”;
导入“包:AudioPlayer/AudioPlayer.dart”;
//主要功能是起点。
void main(){
runApp(MyApp());
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
音频缓存;
@凌驾
void initState(){
//TODO:实现initState
super.initState();
audioCache=audioCache();
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
背景颜色:颜色。靛蓝[300],
正文:安全区(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
扁平按钮(
已按下:(){
audioCache.play('bark.mp3');
},
孩子:圆环星(
半径:50,
背景图片:AssetImage(“images/doggo.jpg”),
),
),
正文(
“罗杰·皮普里诺”,
样式:TextStyle(
尺寸:25,
fontWeight:fontWeight.bold,
颜色:颜色,白色,
fontFamily:“Pacifico”,
),
),
正文(
“有史以来最棒的Boi”。toUpperCase(),
样式:TextStyle(
fontFamily:“SourceSansPro”,
颜色:颜色,靛蓝,
字母间距:2.5,
),
),
大小盒子(
身高:20,
宽度:200,
孩子:分割器(
颜色:颜色。靛蓝[300],
),
),
卡片(
边缘:边缘组。对称(垂直:10,水平:25),
颜色:颜色,白色,
孩子:ListTile(
前导:图标(Icons.phone,color:Colors.indigo),
标题:正文(
"+880 13033 84426",
样式:TextStyle(
颜色:颜色,靛蓝,
fontFamily:“Source Sans Pro”,
尺寸:20,
),
),
),
),
卡片(
边缘:边缘组。对称(垂直:10,水平:25),
颜色:颜色,白色,
孩子:ListTile(
前导:图标(Icons.mail,color:Colors.indigo),
标题:正文(
“罗杰。goodboi@pup.com",
样式:TextStyle(
颜色:颜色,靛蓝,
fontFamily:“Source Sans Pro”,
尺寸:20,
),
),
),
),
],
),
),
),
);
}
}
下面是目录树图像。请注意,audios和images文件夹位于根目录中。图像工作正常,但音频不工作


我想你遗漏了什么试试
下面的
代码
上的按下的方法

onPressed: (){
                  audioCache.play('assets/audios/bark.mp3');
                },

AudioPlayer硬编码到“资产”文件夹,因此您不能将音频文件放入其他根文件夹


My audios文件夹不在ASSETS文件夹中,而是在根目录中。@raiyan106请尝试此链接,路径中不包括ASSETS目录。它已经被硬编码了。谢谢,我想有一种动态的方法可以做到这一点