android-studio - 音频文件的颤振“音频”目录不起作用
问题描述
我有一个简单的颤振应用程序,当点击狗的圆形头像时会发出吠声。如果我按以下方式将音频文件保存在 pubspec.yaml 文件中,那么它可以工作
flutter:
uses-material-design: true
assets:
- assets/
- images/
头像用一个 FlatButton Widget 包裹起来,onPressed 方法是这样的:
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,
),
),
),
),
],
),
),
),
);
}
}
下面我有目录树图像。请注意,音频和图像文件夹位于根目录中。图像工作正常,但音频不工作。
解决方案
AudioPlayers 被硬编码到“assets\”文件夹中,因此您不能将音频文件放到不同的根文件夹中。
推荐阅读
- svg - PWA InkCanvas 在 javascript 中将笔画保存为 svg
- botframework - QnAMaker 迁移后无法到达端点
- javascript - JScroll:在 ajax 更改选项卡和 URI 后更改 nextHref
- python - 熊猫:以一定的价值填补时间空白
- fonts - 如何在 VSCode 中使用自定义字体(是的,我已经看到了其他问题和用户设置,但它仍然不起作用)
- sql-server - 有没有办法在查询中结合 LIKE 和 BETWEEN 的功能?
- vba - VBA MS Word - 如果字符串包含大于 9999 的数字
- dictionary - Ansible 从 dict 获取值
- reactjs - TypeScript/React 在 currentvalue = 函数接口的情况下,扫描运算符如何工作?
- python - 使用 glob 通过 subprocess.run() 生成参数