I am developing a music app but i am getting error can anybody tell me how to fix this PlayerNotificationManager.createWithNotificationChannel
?
.createWithNotificationChannel
is not recognizable
class MusicNotificationManager(
private val context: Context,
sessionToken: MediaSessionCompat.Token,
notificationListener: PlayerNotificationManager.NotificationListener,
private val newSongCallback: () -> Unit
) {
//creating notification for music player
private val notificationManager: PlayerNotificationManager
init {
val mediaController = MediaControllerCompat(context, sessionToken)
notificationManager = PlayerNotificationManager.createWithNotificationChannel(
context,
NOTIFICATION_CHANNEL_ID,
R.string.notification_channel_name,
R.string.notification_channel_description,
NOTIFICATION_ID,
DescriptionAdapter(mediaController),
notificationListener
).apply{
setSmallIcon(R.drawable.ic_music)
setMediaSessionToken(sessionToken)
}
}
fun showNotification(player: Player){
notificationManager.setPlayer(player)
}
//get current playing song
private inner class DescriptionAdapter(
private val mediaController: MediaControllerCompat
): PlayerNotificationManager.MediaDescriptionAdapter {
override fun getCurrentContentTitle(player: Player): CharSequence {
newSongCallback()
return mediaController.metadata.description.title.toString()
}
override fun createCurrentContentIntent(player: Player): PendingIntent? {
return mediaController.sessionActivity
}
//get current playing song title
override fun getCurrentContentText(player: Player): CharSequence? {
return mediaController.metadata.description.subtitle.toString()
}
//get current playing song icon
override fun getCurrentLargeIcon(
player: Player,
callback: PlayerNotificationManager.BitmapCallback
): Bitmap? {
Glide.with(context).asBitmap()
.load(mediaController.metadata.description.iconUri)
.into(object : CustomTarget<Bitmap>(){
override fun onResourceReady(
resource: Bitmap,
transition: Transition<in Bitmap>?
) {
callback.onBitmap(resource)
}
override fun onLoadCleared(placeholder: Drawable?) = Unit
})
return null
}
}
}
I have tried to add all possible dependencies in my build.gradle file but not able to resolve this issue.
5
Answers
It works by changing the implementation from 'com.google.android.exoplayer:exoplayer:2.15.0' to
implementation 'com.google.android.exoplayer:exoplayer:2.11.6'
PlayerNotificationManager.createWithNotificationChannel were deprecated in favor of PlayerNotificationManager.Builder
refer
https://github.com/google/ExoPlayer/blob/92e05bcd6608b48cc4d20974f55e6a9136274c33/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java#L717-L719
use
public Builder(Context context,int notificationId,String channelId,MediaDescriptionAdapter mediaDescriptionAdapter)
PlayerNotificationManager.createWithNotificationChannel()
is deprecated. Here is how you can achieve the same functionality:Try this:
Here is an example.