BroadcastReceiver制作音乐播放器如何在Service类下实现开始和暂停为一个按钮 Kotlin
时间: 2024-02-03 12:14:39 浏览: 142
在 Service 类下,可以创建一个 BroadcastReceiver 类来处理开始和暂停音乐播放的按钮点击事件。可以按照以下步骤实现:
1. 在 Service 类中创建一个内部类 BroadcastReceiver,继承自 BroadcastReceiver 类,并实现 onReceive() 方法。
2. 在 onReceive() 方法中,处理开始和暂停按钮的点击事件。可以通过判断当前音乐播放状态,执行相应的操作。
3. 在 Service 类中创建一个 MediaPlayer 对象,在 onReceive() 方法中控制音乐播放状态。
4. 在 Activity 中,注册 BroadcastReceiver,并发送相应的 Intent。
以下是示例代码:
```kotlin
class MusicService : Service() {
inner class MusicReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action == "ACTION_PLAY_PAUSE") {
if (mediaPlayer.isPlaying) {
mediaPlayer.pause()
} else {
mediaPlayer.start()
}
}
}
}
private lateinit var mediaPlayer: MediaPlayer
private lateinit var musicReceiver: MusicReceiver
override fun onCreate() {
super.onCreate()
mediaPlayer = MediaPlayer.create(this, R.raw.music)
musicReceiver = MusicReceiver()
val intentFilter = IntentFilter("ACTION_PLAY_PAUSE")
registerReceiver(musicReceiver, intentFilter)
}
override fun onDestroy() {
super.onDestroy()
unregisterReceiver(musicReceiver)
mediaPlayer.release()
}
override fun onBind(intent: Intent): IBinder? {
return null
}
}
```
在 Activity 中发送 Intent:
```kotlin
val intent = Intent("ACTION_PLAY_PAUSE")
sendBroadcast(intent)
```
阅读全文