我正在尝试在非常精确的时刻播放非常短的wav文件(每个文件约0.5秒)。
我已经加载了wav文件,并试图在循环播放时播放它:
private val player = MediaPlayer()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val afd = resources.openRawResourceFd(R.raw.sub_kick_36_045)
val fileDescriptor = afd.fileDescriptor
try {
player.setDataSource(
fileDescriptor, afd.startOffset,
afd.length
)
player.isLooping = true
player.prepare()
} catch (ex: IOException) {
Log.d("Activity", ex.message)
}
play.setOnClickListener {
player.start()
}
stop.setOnClickListener {
player.stop()
}
}
声音正在播放,但是播放循环时我有明显的延迟。
我发现一个应用程序可以非常准确地播放声音,但是它使用更复杂的过程来播放文件,并且文件本身非常特殊(不是wav)
https://github.com/tube42/drumon
也许你们可以建议我如何以最小的延迟立即播放声音(0.5秒至5秒长)。 (使用某些Java库之类的东西)
答案 0 :(得分:0)
您的音频很短,也许您可以尝试“ SoundPool”。