|
|
@ -35,14 +35,14 @@ class MusicService : MediaBrowserServiceCompat() { |
|
|
private const val DELETE_ACTION = "com.yunqiinnovation.music_service.DELETE_NOTIFICATION" |
|
|
private const val DELETE_ACTION = "com.yunqiinnovation.music_service.DELETE_NOTIFICATION" |
|
|
|
|
|
|
|
|
private val isRunning = AtomicBoolean(false) |
|
|
private val isRunning = AtomicBoolean(false) |
|
|
private var currentUrlInternal: String? = null |
|
|
private var currentIdInternal: Int? = null |
|
|
private var currentStatus = false |
|
|
private var currentStatus = false |
|
|
private var playlist = mutableListOf<Map<String,Any>>() |
|
|
private var playlist = mutableListOf<Map<String,Any>>() |
|
|
private var currentIndex = 0 |
|
|
private var currentIndex = 0 |
|
|
|
|
|
|
|
|
fun isServiceRunning() = isRunning.get() |
|
|
fun isServiceRunning() = isRunning.get() |
|
|
fun isPlaying() = currentStatus |
|
|
fun isPlaying() = currentStatus |
|
|
fun getCurrentUrl(): String? = currentUrlInternal |
|
|
fun getCurrentId(): Int? = currentIdInternal |
|
|
|
|
|
|
|
|
// 获取播放进度信息 |
|
|
// 获取播放进度信息 |
|
|
fun getProgress(): Map<String, Any> { |
|
|
fun getProgress(): Map<String, Any> { |
|
|
@ -360,14 +360,15 @@ class MusicService : MediaBrowserServiceCompat() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private fun play(song: Map<String,Any>) { |
|
|
private fun play(song: Map<String,Any>) { |
|
|
val url = song["url"] ?: return |
|
|
val url = song["url"] as? String ?: return |
|
|
Log.i(TAG, "开始播放: $url") |
|
|
Log.i(TAG, "开始播放: $url") |
|
|
|
|
|
val id = song["id"] as? Int ?: 0 |
|
|
val title = song["title"] as? String ?: "未知标题" |
|
|
val title = song["title"] as? String ?: "未知标题" |
|
|
val artist = song["artist"] as? String ?: "未知歌手" |
|
|
val artist = song["artist"] as? String ?: "未知歌手" |
|
|
val coverUrl = song["coverUrl"] as String |
|
|
val coverUrl = song["coverUrl"] as String |
|
|
mediaPlayer?.release() |
|
|
mediaPlayer?.release() |
|
|
currentStatus = true |
|
|
currentStatus = true |
|
|
currentUrlInternal = url as String |
|
|
currentIdInternal = id |
|
|
mediaPlayer = MediaPlayer().apply { |
|
|
mediaPlayer = MediaPlayer().apply { |
|
|
setDataSource(url) |
|
|
setDataSource(url) |
|
|
setAudioStreamType(AudioManager.STREAM_MUSIC) |
|
|
setAudioStreamType(AudioManager.STREAM_MUSIC) |
|
|
|