Libgdx - 如何正确处理声音文件

时间:2017-06-08 05:43:13

标签: libgdx

什么时候应该处理声音效果?

我对音效与音乐有点混淆。有了音乐,我只需要在音量完成时处理它,因为音乐只是重复直到音量结束,然后音乐不再使用。有了声音效果,它们会播放很短的时间,所以我不确定当一个人完成后会发生什么,而新的声音会播放相同的声音。

例如,玩家角色可以在每次拍摄声音时开枪。因此,如果播放器拍摄6次,那么声音效果是否会被处理为需要处理的6个单独的声音,或者是一个声音文件,只有在不再需要时才处理一次而不管它使用了多少次?

2 个答案:

答案 0 :(得分:1)

每次播放时都不需要丢弃它。当您处置其他游戏资产时,只需处置它(即在游戏处置时从游戏处置方法中调用它)。

当播放器拍摄6次时,声音将同时播放6次。 来自javadoc:

  

播放声音。如果声音已经播放,它将同时播放。

但是你应该处理6种不同的声音或类似的声音。

所以回答你的问题:是一个声音文件,只有在不再需要时才被处理掉一次,无论使用多少次?

答案 1 :(得分:0)

适用于小型项目/游戏:

  1. 您在PlayScreen上使用的任何声音,在游戏的create()方法中创建一次并在游戏中使用而不会丢弃它们。

    Sound sound = Gdx.audio.newSound(Gdx.files.internal("data/mysound.mp3"));
    

    dispose()的{​​{1}}方式处理声音,当您退出游戏时调用该方法。

  2. 在屏幕界面的ApplicationListener方法中创建声音,并将它们放置在show()屏幕中,但框架不会调用dispose()屏幕,因此您需要通过你自己从屏幕的dispose()方法调用dispose()方法。

  3. 使用AssetManager并通过按要求加载,卸载来管理资源,并在ApplicationListener中处置hide()处置。

  4. 资源方面的大项目/游戏

    您必须使用AssetManager,因为您需要管理大量资源。