kotlin 我想根据用户在列表中单击的歌曲播放res/raw文件夹中的音乐文件

zvokhttg  于 2023-05-07  发布在  Kotlin
关注(0)|答案(1)|浏览(167)

我被要求显示歌曲列表,播放,暂停和停止只使用Android核心组件.
我已经设法显示歌曲列表。此外,我已经实现了播放/暂停/停止功能,但问题是,我只能播放硬编码的音乐文件。
这是我在Service类中的onCreate函数:

override fun onCreate() { 
         super.onCreate() 
         mediaPlayer = MediaPlayer.create(this,R.raw.sampl) 
         mediaPlayer.setOnCompletionListener { 
             stopSelf() 
         } 
     }

基本上,我的目标是能够用用户从片段中选择的原始文件夹中的任何其他文件更改R.raw.sampl。
这就是我在片段中演奏音乐的方式

binding.btnPlay.setOnClickListener {
            val intent = Intent(requireContext(), MusicService::class.java)
            intent.action = MusicService.ACTION_PLAY
            requireActivity().startService(intent)
        }

我想不出做那件事的方法。
谢谢

91zkwejq

91zkwejq1#

private fun listRaw() {
    val fields: Array<Field> = R.raw::class.java.fields
    for (count in fields.indices) {
        val resourceID = fields[count].getInt(fields[count])
    }
}

上面的代码可以用来列出raw文件夹中的所有文件,并使用资源ID在媒体播放器中播放它们。

mediaPlayer = MediaPlayer.create(this,resourceID)

resourceID将与R.raw.sampl相同

相关问题