我不太了解Flutter。我不知道怎样才能把声音演奏得最快。我尝试过的最快的方法有250毫秒的延迟。我想做的就是让按钮发出声音。我想我需要做的是缓存音频,但我没有足够的信息。如果你能帮助我,我会很高兴的。
播放已经在资产中定义的文件的简单解决方案是使用AudioCache。图书馆:https://pub.dartlang.org/packages/audioplayers。更多关于AudioCache的信息。导入所需的类:
import 'package:audioplayers/audio_cache.dart';
在相同的文件中添加一个资源,并将带有声音的文件放入assets文件夹(如果你没有这个文件夹,创建一个)
assets:
- assets/sound_alarm.mp3
然后添加以下代码:
static AudioCache player = new AudioCache();
const alarmAudioPath = "sound_alarm.mp3";
player.play(alarmAudioPath);
下面是mortiz的回答的帮助:
pubspec。导入所需的类:
dependencies:
audioplayers: ^0.20.1 # Not "1.0.1". Because audioplayers/audio_cache.dart does not exist.
导入所需类:
import 'package:audioplayers/audioplayers.dart';
在相同的文件中添加一个资源,并将带有声音的文件放入assets文件夹(如果你没有这个文件夹,创建一个)
assets:
- assets/sound_alarm.mp3
然后添加以下代码:
static AudioCache player = new AudioCache();
const alarmAudioPath = "sound_alarm.mp3";
要缓存音频,我们需要在initstate方法中覆盖它:
@override
void initState() {
player.load(alarmAudioPath );
}
然后我们可以用这个函数播放的声音:
player.play(alarmAudioPath );
你可以简单地使用https://pub.dev/packages/flutter_ringtone_player这个包。
FlutterRingtonePlayer。play(from masset: "assets/ringtone.mp3",);
当你想停止声音时,请停止使用
FlutterRingtonePlayer.stop ();
我在执行可接受的答案时遇到错误,与@melih-hakan-pekta相同。根据chatGPT,这是因为audioplayer包改变了audiocache的使用方式。下面的GPT解决方案为我工作…
从GPT:您遇到的错误似乎是由于audioplayers
包中的AudioCache
类的弃用。AudioCache
API现在主要用于将资产文件转换为本地文件,缓存它们,并提供路径。但是,最终用户通常不需要使用它,因为AudioPlayer
本身现在能够播放来自任何来源的音频,包括:
UrlSource
:从Internet远程URL获取音频DeviceFileSource
:访问用户设备上的文件AssetSource
:播放与应用绑定的资源BytesSource
:直接传入音频的字节数【18†来源】。
一个建议的解决方案是使用AudioPlayer
类而不是AudioCache
。下面是一个示例:
import 'package:audioplayers/audioplayers.dart';
final player = AudioPlayer();
player.play(AssetSource('note1.wav'));
或者,如果你要触发按键的声音,你可以使用TextButton
小部件:
child: TextButton(
onPressed: () async {
final player = AudioPlayer();
await player.play(
AssetSource('note1.wav'),
);
},
child: Text("Play me"),
),
请记住将'note1.wav'
替换为声音文件的路径,在您的例子中是'sounds/beep-record-pause.mp3'
【19†source】【20†source】。
此外,确保您的audioplayers
包更新到AudioCache
已弃用的版本(帖子建议版本^1.0.1),并相应地调整您的pubspec.yaml
文件:
dependencies:
audioplayers: ^1.0.1
请将1.0.1
替换为audioplayers
包的最新版本【18†source】。
如果你需要进一步的帮助,请告诉我!