是否有任何考虑因为Android MediaPlayer不提供getDataSource API?
更重要的是,两个MediaPlayer对象可以同时播放同一个文件吗?
这可能只是一个设计决策,因为MediaPlayer的某些部分是本机代码,而setDataSource的实现会有点棘手。
您可以轻松地在两个MediaPlayers中播放相同的文件,只需自己管理即可。
mediaPlayer.reset()
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC)
mediaPlayer2.reset()
mediaPlayer2.setAudioStreamType(AudioManager.STREAM_MUSIC)
context.resources.openRawResourceFd(R.raw.audio_file)
.use { assetFileDescriptor ->
mediaPlayer.setDataSource(assetFileDescriptor.fileDescriptor,
assetFileDescriptor.startOffset, assetFileDescriptor.length)
mediaPlayer.prepareAsync()
mediaPlayer.setOnPreparedListener {
it.start()
}
mediaPlayer2.setDataSource(assetFileDescriptor.fileDescriptor,
assetFileDescriptor.startOffset, assetFileDescriptor.length)
mediaPlayer2.prepareAsync()
mediaPlayer2.setOnPreparedListener {
it.start()
}
}