程序开始运行了 INSTALL(DSOUND) 就可以使用风魂中的利用 DirectSound 实现的声音管理模块
void DSOUND::on() 打开声音
void DSOUND::off() 关闭声音
void DSOUND::vol(int vol=0) 调整音量, 0 为最大值. VOLMIN(一个负数) 为最小值
风魂中将声音分为 SAMPLE 和 MUSIC 两类. 实际上他们都是采样声音 (从 WAV 文件中加栽) SAMPLE 是将数据全部加载入内存的声音. 而 MUSIC 是一种声音流, 系统将持续的读外存, 播放 MUSIC.
关于播放格式 play_none (不播放, 或者播放已经停止) play_once (播放一次后停止) play_release (播放一次后停止, 并且释放掉数据占用的内存) play_loop (循环播放) int MUSIC::load(char *filename,enum play_mode mode=play_loop) 加载声音流, 并可以设置播放模式 (play_once 或 play_loop) 成功返回 0 注意: MUSIC 的所有函数都是静态的, 所以你只能加载一个 MUSIC
void MUSIC::play(enum play_mode mode=music_mode) 播放前面加载的声音流.
void MUSIC::play(char *filename,enum play_mode mode=play_loop) 以声音流形式播放一个 wav 文件.
void MUSIC::stop() 停止音乐
void MUSIC::destroy() 释放音乐占用的资源. 通常会自动调用.
void MUSIC::on() 开启音乐
void MUSIC::off() 关闭音乐 (等同于 stop() )
int SAMPLE::load(char *filename) 加载 wav 文件
void SAMPLE::play(enum play_mode mode=play_once,int vol=0,int pan=0) 播放 SAMPLE, 可以指定播放模式, 音量和 PAN. 关于 PAN 指的声音在左右声道的位置. 0 表示中间, PANLEFT 表示最左边, PANRIGHT 表示最右边.
void SAMPLE::stop() 停止 SAMPLE 的播放
int SAMPLE::play(char *filename,int vol=0,int pan=0) 播放指定 wav 文件, 当声音播放完毕后将释放占用的内存空间
void SAMPLE::adjust(int vol=0,int pan=0) 调整音量和 PAN
enum play_mode playingmode() 返回当前声音状态. 可以用来检测声音是否播放完毕. 比如, 如果返回的是 play_none, 表明声音没有在播放中.
|