Project1

标题: 如何判断某BGM或者ME正在播放中? [打印本页]

作者: 黄亦天    时间: 2011-2-12 08:34
标题: 如何判断某BGM或者ME正在播放中?
RT,我想做个效果,当音乐播放完毕之后再进行对话,于是想判断这段音乐是否在播放中,如果是,就等待30跳转标签重新判断,如果已经播放结束了,则继续对话。
相比较BGM来说,感觉还是ME会比较好判断,BGM直接就自动循环了,ME倒是只播放一遍……
dsu_plus_rewardpost_czw
作者: fux2    时间: 2011-2-12 08:59
本帖最后由 fux2 于 2011-2-12 09:10 编辑

不知道这里对你有帮助否
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取战斗 BGM
  3.   #--------------------------------------------------------------------------
  4.   def battle_bgm
  5.     if @battle_bgm == nil
  6.       return $data_system.battle_bgm
  7.     else
  8.       return @battle_bgm
  9.     end
  10.   end
复制代码
另附Audio模块全方法
  1. send
  2. name
  3. bgm_stop
  4. class_eval
  5. method
  6. object_id
  7. singleton_methods
  8. me_play
  9. __send__
  10. private_method_defined?
  11. equal?
  12. taint
  13. display
  14. frozen?
  15. instance_variable_get
  16. constants
  17. kind_of?
  18. to_a
  19. instance_eval
  20. ancestors
  21. bgm_fade
  22. const_missing
  23. type
  24. instance_methods
  25. me_stop
  26. protected_methods
  27. extend
  28. protected_method_defined?
  29. eql?
  30. public_class_method
  31. const_get
  32. instance_variable_set
  33. hash
  34. is_a?
  35. bgs_play
  36. to_s
  37. class_variables
  38. class
  39. tainted?
  40. private_methods
  41. me_fade
  42. public_instance_methods
  43. untaint
  44. included_modules
  45. autoload
  46. private_class_method
  47. const_set
  48. id
  49. <
  50. inspect
  51. <=>
  52. bgs_stop
  53. ==
  54. method_defined?
  55. instance_method
  56. >
  57. ===
  58. clone
  59. public_methods
  60. protected_instance_methods
  61. se_play
  62. >=
  63. respond_to?
  64. bgm_play
  65. <=
  66. freeze
  67. module_eval
  68. __id__
  69. bgs_fade
  70. =~
  71. methods
  72. public_method_defined?
  73. nil?
  74. dup
  75. private_instance_methods
  76. se_stop
  77. instance_variables
  78. include?
  79. autoload?
  80. const_defined?
  81. instance_of?
复制代码

作者: 黄亦天    时间: 2011-2-12 16:47
回复 fux2 的帖子

唔……
翻了F1和F11看完一长串一长串的方法和脚本后实验多次后无解……
所以,感觉还是简单明了一些最好……
相对于BGM,还是比较想判断ME的播放
作者: 苏小脉    时间: 2011-2-13 01:54
我以前写过这么一个东西,虽然用的接口很老,但还凑合着能用吧:
http://rpg.blue/forum.php?mod=viewthread&tid=123477

AudioEx.mode(device)

这个函数返回一个设备当前状态的字符串,可以是以下几种:
"not ready" = 还未准备好播放
"paused"    = 暂停中
"playing"   = 播放中
"stopped"   = 播放停止了(除非调用了 AudioEx.stop,否则 stopped 表示播放结束)

device 是设备的标识

例子:
if AudioEx.mode("我的音乐1") == "stopped"
  print "音乐播放结束!"
end

作者: 黄亦天    时间: 2011-2-13 18:09
回复 苏小脉 的帖子

唔……
貌似用不了……
XP的直接移过来虽然没有弹框,但是丝毫没有效果……
作者: 苏小脉    时间: 2011-2-14 02:51
回复 黄亦天 的帖子

请问你是怎么用的?
作者: 黄亦天    时间: 2011-2-15 00:55
回复 苏小脉 的帖子

唔……
把两个脚本拷贝了过来,把第三个事件里的脚本和条件分歧也拷贝了过来(只需要第三个),甚至于把BGM和ME也拷贝了过来,但是执行事件的时候并没有播放ME,判定自然没有啥用处了……
总之,总结起来就是全副式拷贝之后,播放ME失败……
(ps:这两天在赶稿子,未能及时答复请见谅)
作者: 苏小脉    时间: 2011-2-15 01:57
黄亦天 发表于 2011-2-15 00:55
回复 苏小脉 的帖子

唔……

你有 RMXP 吧,范例工程是否运行正常?另外可以试试不同格式的媒体。按理说这个应该只和 OS 环境有关,如果 RMVX 不行,那在 RMXP 中也应不行。
作者: 黄亦天    时间: 2011-2-16 19:32
有没有简单判定的方法的说……
MS播放ME的时候,BGM会暂时淡去,然后再恢复,如果在恢复的位置加一个判定说不定就可以的说……
(近期文学细胞复苏了,脚本事件什么的细胞慢慢开始沉睡了……)
作者: 魔能奶糖猫    时间: 2011-2-17 12:28
回复 黄亦天 的帖子

你把所有的Audio换成AudioEx试试




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1