我一直在想:是否可以在LibGDX中使用通用补间引擎来(例如)更改歌曲的音量?我用类似于SpriteAccessor的代码编写了自己的MusicAccessor,该代码实际上适用于Sprite.class,但是当涉及到音乐对象时,总是会得到相同的错误:

java.lang.RuntimeException: No TweenAccessor was found for the target

关键是,我确实通过以下方式注册了访问器:Tween.registerAccessor(Music.class,new MusicAccessor());我很确定它实际上已被注册,因为System.out.println(Tween.getRegisteredAccessor(Music.class));显示:the.name.of.my.packages.MusicAccessor@14bb523。老实说,我被困住了。

音乐文件本身为.mp3格式,我由 Assets 管理器加载。

因此,我的问题是:为什么Tween Engine无法正确识别我的音乐对象的类?有没有办法使它正常工作,或者我会一直使用常规计时器来随着时间改变音量吗?更改格式或以其他方式加载音乐文件会有所帮助吗?

最佳答案

我个人还没有使用Tween Engine,但是我认为可能是因为Music实际上只是一个接口(interface)。

对于不同的后端和不同的文件格式,有几种实现。例如AndroidMusicGwtMusic和其他OpenALMusic的三个实现(它们都称为Music,位于com.badlogic.gdx.backends.openal.mp3/ogg/wav包中)。您既可以在访问器中注册它们,也可以使用我在代码中找到的 Tween.cast() ,但不能在补间引擎的官方JavaDoc中使用。它可能仅是最新版本。

关于java - LibGDX中用于music.class的TweenAccessor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20978847/

10-09 19:48