我被要求显示歌曲列表,播放,暂停和停止只使用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)
}
2条答案
按热度按时间fykwrbwg1#
上面的代码可以用来列出raw文件夹中的所有文件,并使用资源ID在媒体播放器中播放它们。
resourceID将与
R.raw.sampl
相同对于活动到服务的通信,建议使用绑定器。观看此video以更好地了解服务。
MyService类
而在活动中
和按钮点击或每当你想播放音乐。使用resourceID代替R.raw.ab
hec6srdp2#
你可以通过Intent将你的原始资源ID传递给你的服务:
然后,在服务中获取您的资源ID: