设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2197|回复: 3
打印 上一主题 下一主题

[已经解决] 不通过文件名怎么改变音量?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
65
在线时间
389 小时
注册时间
2009-11-24
帖子
71
跳转到指定楼层
1
发表于 2014-11-19 22:02:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
假设现在某个bgm正在播放中,或者bgm停止播放中。
即现在的状态是 Audio.bgm_play(filename) 或 Audio.bgm_stop 。
假如此时bgm的filename未知,这种情况下怎么改变bgm的volume和pitch?
此外,bgs、se、me在未知filename情况下怎么直接改变volume和pitch?

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2014-11-19 23:15:18 | 只看该作者
首先我可能没看懂你的意思,
如果你的想法是修改音量和声调的话,一个想法就是重写RPG::BGM#play方法,在@volume和 @pitch后面都乘上一个系数。BGS和SE等同样都可以这样做
然后通过控制这个系数来控制音量和声调,(好像那些系统音量控制的脚本就是这么做的(大概,未测试过
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
389 小时
注册时间
2009-11-24
帖子
71
3
 楼主| 发表于 2014-11-20 09:00:03 | 只看该作者
VIPArcher 发表于 2014-11-19 23:15
首先我可能没看懂你的意思,
如果你的想法是修改音量和声调的话,一个想法就是重写RPG::BGM#play方法,在@v ...

描述得不是很清楚吗……
简单来说,就是如何即时控制bgm的音量。

这是播放bgm的代码:
  1. Audio.bgm_play(filename[, volume[, pitch[, pos]]])
复制代码
假如现在我播放bgm01.ogg,音量是80:
  1. Audio.bgm_play('bgm01.ogg', 80)
复制代码
然后我想要把bgm的音量改成100,那就这样做:
  1. Audio.bgm_play('bgm01.ogg', 100)
复制代码
嗯,这似乎没有什么问题。
但这是建立在知道当前播放bgm文件名的情况下的。
也就是知道当前播放的bgm文件名是bgm01.ogg。

在不知道bgm文件名的情况,举例代码如下:
  1. Audio.bgm_play('bgm' + rand(10).to_s + '.ogg', 80)
复制代码
这时要改变bgm音量,要怎么做?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
269 小时
注册时间
2014-5-9
帖子
127

开拓者

4
发表于 2014-11-20 11:06:27 | 只看该作者
直接修改各自的play方法,在每次播放时记录一下文件名
(参考BGM.last)

点评

我之前唯一想到的办法就是这个,似乎也只能这样做了。不只是play,stop也要修改的。SE音轨多不知道怎么弄,但是SE播放时间很短所以忽略就没问题了  发表于 2014-11-20 11:23

评分

参与人数 2星屑 +5 梦石 +1 收起 理由
VIPArcher + 1 认可答案
test + 5

查看全部评分

泉眼无声惜细流,树阴照水爱晴柔。
小荷才露尖尖角,早有蜻蜓立上头。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 05:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表