gpt4 book ai didi

Flutter Audioplayers 声音延迟播放

转载 作者:行者123 更新时间:2023-12-05 06:52:01 41 4
gpt4 key购买 nike

我想使用 quiver async 中的节拍器类和 audioplayers 包在 Flutter 中编写一个节拍器应用程序。但是,音频播放器发出的咔嗒声总是延迟播放。有时会有几个小节没有声音,然后是一个小节,所有错过的点击都会立即播放。听起来节拍器在随机加速、减速或暂停。使用时时机要好很多

SystemSound.play(SystemSoundType.click);

而不是音频播放器(尽管声音在较高的速度下仍然略有延迟)。

这是 FloatingActionButton 小部件的相关代码片段(按下时,执行 _play 函数;先执行 _cacheAudio 函数):

import 'package:audioplayers/audio_cache.dart';
import 'package:quiver/async.dart';

AudioCache _cache = AudioCache();
int _beatCounter;
int _millisecondsPerTick;
var _timer;

void _cacheAudio() {
_cache.load('Metronome.wav');
_cache.load('MetronomeUp.wav');
}

void _play() {
_millisecondsPerTick = 60000 ~/ bpm;
_beatCounter = 1;
_timer = new Metronome.epoch(new Duration(milliseconds: _millisecondsPerTick))
.listen(_tick);
}

void _tick(DateTime t) async {
if (_beatCounter > 4) {
_beatCounter = 1;
}
if (_beatCounter == 1) {
_cache.play('MetronomeUp.wav');
} else {
_cache.play('Metronome.wav');
}
_beatCounter++;
}

我该怎么做才能使声音准确地按所需间隔播放?

感谢您的帮助。

最佳答案

如果这对某人有帮助:我通过切换到 soundpool 解决了问题将音轨缓存在内存中的包,从而最大限度地减少延迟;我还用常规的飞镖流替换了箭袋节拍器。

仍然存在一些轻微的延迟问题,但它足以满足我的目的。 Here是来自已完成应用的相关代码。

关于Flutter Audioplayers 声音延迟播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66047277/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com