NativeAudioService使用多个音频文件

时间:2016-12-29 07:12:29

标签: android javafx android-mediaplayer soundpool javafxports

关于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类还提供了其他方法,例如setCycleCountsetVolumesetAutoPlay。这个AndroidNativeAudio类有一些扩展吗?

我解决这两个问题的解决方案是:

  • 在AndroidNativeAudio类中,创建属性(例如:nbCyclesCount,audioLevel)。然后,修改其播放方法以考虑nbCyclesCount。并创建一个setAudioLevel方法。

  • 最后,当准备好服务(AndroidNativeAudio的实例)时,在播放之前指定这些属性。

问题3 (解决)

它仍然是播放方法的一个大问题(在AndroidNativeAudio类中),不可能同时(同时)听到两个声音:

  • 为sound1

  • 创建实例1
  • 为sound2

  • 创建实例2

在创建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个同步声音可以正常工作。

0 个答案:

没有答案