循环BGM

TODO

通过使用Bgm类,你可以管理游戏(App)的生命周期或者控制背景音乐的循环。

当App暂停、停止或者切换至后台时,Bgm类将会自动暂停当前播放的音乐。同样,App恢复后,Bgm将会同时恢复背景音乐的播放。并且支持手动暂停/恢复。

你需要通过以下代码来注册该监听器:

Flame.bgm.initialize();

注意:调用initialize()前,你需要确保WidgetsBinding实例已经存在。可以确定的是,在至少调用一次runApp后没有问题。

如果你不需要处理背景音乐,但是希望游戏(App)继续正常运行,可以通过dispose函数来删除监听器。

Flame.bgm.dispose();

输入以下代码以循环播放背景音乐:

import 'package:flame/flame.dart';

Flame.bgm.play('adventure-track.mp3');

或者:

import 'package:flame/bgm.dart';

Bgm audio = Bgm();
audio.play('adventure-track.mp3');

注意:Bgm类将始终使用Flame.audio中的FlameAudio静态变量来存储缓存的音乐文件。

你需要保证你的目录结构正确,并且将文件添加在pubspec.yaml中,如音频处理文档所述。

缓存音乐文件

以下函数可用于将音乐文件预加载(或取消加载)到缓存中。这些函数只是Flame.audio中具有相同名称的功能的别名。

Flame.audio.load('adventure-track.mp3');
Flame.audio.loadAll([
  'menu.mp3',
  'dungeon.mp3',
]);
Flame.audio.clear('adventure-track.mp3');
Flame.bgm.clearAll();

同样的,请查看音频处理文档获取更多信息。

可用函数

播放 Play

Play函数接收一个字符串,该字符串为你要播放的音乐文件的文件名。(确保你的目录结构符合Flame Audio规范)

你可以传入类型为double的额外参数,即volume音量(默认为1.0).

比如:

Flame.bgm.play('bgm/boss-fight/level-382.mp3');
Flame.bgm.play('bgm/world-map.mp3', volume: .25);

停止 Stop

通过调用stop直接停止播放背景音乐。

Flame.bgm.stop();

暂停/恢复 Pause/Resume

可以使用pauseresume函数以手动 暂停/恢复 播放背景音乐。

Flame.bgm会自动处理暂停/恢复当前正在播放的背景音乐。手动暂停后,游戏(App)恢复后将不会自动播放。

Flame.bgm.pause();
Flame.bgm.resume();
Flame中文站 all right reserved,powered by Gitbook最后修改: 2020-08-20 18:08:37

results matching ""

    No results matching ""