【问题标题】:PulpCore music playback - loop sound and animate volumePulpCore 音乐播放 - 循环声音和动画音量
【发布时间】:2010-04-30 04:41:07
【问题描述】:

我一直在尝试使用 PulpCore,尝试创建 my own tower defence game(还不能播放),我非常喜欢它,但遇到了一个我无法弄清楚的问题。我用 JOrbis 扩展了 PulpCore 以允许播放 OGG 文件。工作正常。然而,pulpCore 似乎有一个问题,即在为音量设置动画的同时循环声音。我也用 wav 文件试过这个,以确保它不是 jOrbis 破坏它。代码是这样的:

Sound bgMusic = Sound.load("music/music.ogg");
Playback musicPlayback;
...

musicVolume = new Fixed(0.75);
musicPlayback = bgMusic.loop(musicVolume);
//TODO figure out why it's NOT looping when volume is animated
//  musicVolume.animate(0, musicVolume.get(), FADE_IN_TIME);

只要最后一行被注释掉,这段代码就会在无限循环中一次又一次地播放 music.ogg(我可以通过对 loop() 返回的 Playback 对象调用 stop 来停止它。但是,我希望音乐顺利淡入,所以按照 PulpCore API 文档的建议,我添加了最后一行将创建淡入但音乐只会播放一次然后停止。我想知道这是为什么?这里是一些文档:

播放 pulpcore.sound.Sound.loop(固定级别)

使用 指定的音量级别(0.0 到 1.0)。 该级别可能有一个属性 附上动画。

参数:级别

返回:为此的播放对象 独特的声音播放(一个声音可以 有许多同时播放 objects) 或 null 如果声音可以 不能播放。

那么可能是什么问题?我重复,最后一行,声音淡入但不循环,没有它循环但从指定的 0.75 音量级别开始。 为什么我不能为循环音乐播放的音量设置动画?我究竟做错了什么?任何人都有使用pulpCore的经验并且遇到过这个问题?任何人都可以请下载 PulpCore 并尝试循环播放淡入(淡出)的音乐吗?

注意:我需要保留对返回的 Playback 对象的引用,以便以后可以终止音乐。

【问题讨论】:

    标签: java playback loops oggvorbis pulpcore


    【解决方案1】:

    如果animate 方法只设置了选项,它可能会出人意料地工作 - 尝试用循环本身切换这一行,以便首先应用动画。

    【讨论】:

    • 切换了行,但它仍然停止循环。 volume.animate(0, volume.get(), fadeInDuration); currentPlayback = tracks[trackIndex].loop(volume);
    【解决方案2】:

    您能否在未循环播放时为音量设置动画,然后在播放结束时以固定级别开始循环?

    【讨论】:

    • 我试过了,但没有得到满意的结果,有点滞后,我无法接受。
    【解决方案3】:

    最后,我设法从纸浆核心作者那里得到了这个问题的解释和简单的解决方法。所以这里是:

    这是一个 PulpCore 错误。当输出 音量为零,声音播放器停止 循环播放声音。

    要解决这个问题,请从 不为零的值,如下所示:

    musicVolume.animate(0.0001, 1, FADE_IN_TIME); 
    

    Link to this on pulpcore Google groups

    【讨论】:

    • 这是我接受的答案。解决方案确实有效。为什么我不能将其标记为已接受? (耸肩)
    猜你喜欢
    • 1970-01-01
    • 2021-06-27
    • 2014-01-02
    • 2012-08-18
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    相关资源
    最近更新 更多