有没有考虑为什么Android MediaPlayer不提供getDataSource API?
还有两个MediaPlayer对象可以同时播放同一个文件吗?
答案 0 :(得分:1)
这可能只是一个设计目标,因为MediaPlayer的某些部分是本机代码,getDataSource的实现会有点棘手。
您可以轻松地在两个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()
}
}