关于Android,我现在使用NativeAudioService。这适用于我的智能手机。我已使用单个音频文件对其进行了测试,如javafxports how to call android native Media Player中定义的示例中所述。
问题1 (已解决)
现在,如果我想用这项服务听几个声音(几个文件),我该怎么办?该示例包含AndroidNativeAudio
类中的显式和单个音频文件名(“audio.mp3”),并且该服务不接受任何参数作为音频文件名:
service = (NativeAudioService)
Class.forName("com.gluonhq.nativeaudio.AndroidNativeAudio").newInstance();
问题2 (已解决)
本机音频服务有四种方法(播放,停止,暂停,恢复)。他们工作正常。但MediaPlayer
类还提供了其他方法,例如setCycleCount
,setVolume
和setAutoPlay
。这个AndroidNativeAudio
类有一些扩展吗?
我解决这两个问题的解决方案是:
在AndroidNativeAudio类中,创建属性(例如:nbCyclesCount,audioLevel)。然后,修改其播放方法以考虑nbCyclesCount。并创建一个setAudioLevel方法。
最后,当准备好服务(AndroidNativeAudio的实例)时,在播放之前指定这些属性。
问题3 (解决)
它仍然是播放方法的一个大问题(在AndroidNativeAudio类中),不可能同时(同时)听到两个声音:
为sound1
为sound2
在创建Sound2之前,会听到Sound1。之后,只听到Sound2。
是否由于https://developer.android.com/reference/android/media/MediaPlayer.html#release()中提及的手机编解码器实例数量而导致?
如何在Android中同时听到几个声音? SoundPool类似乎是一个解决方案?已经用于智能手机游戏了吗?
见答案: AudioTrack, SoundPool or MediaPlayer Which Should I use?
解决方案: 我使用AndroidNativeAudio类和NativeAudioService接口。我在Android上测试过它:它在我的手机上至少有5个同步声音可以正常工作。