Reputation: 55
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.
Upvotes: 6
Views: 5150
Reputation: 51
Here is an example.
playerNotificationManager = new PlayerNotificationManager.Builder(this, 151, "1234")
.setMediaDescriptionAdapter(new PlayerNotificationManager.MediaDescriptionAdapter() {
@Override
public CharSequence getCurrentContentTitle(Player player) {
return videoTitle;
}
@Nullable
@Override
public PendingIntent createCurrentContentIntent(Player player) {
return null;
}
@Nullable
@Override
public CharSequence getCurrentContentText(Player player) {
return null;
}
@Nullable
@Override
public Bitmap getCurrentLargeIcon(Player player, PlayerNotificationManager.BitmapCallback callback) {
if (!VideoPlayerActivity.this.isDestroyed()) {
Glide.with(VideoPlayerActivity.this)
.asBitmap()
.load(new File(mVideoFiles.get(position).getPath()))
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
return null;
}
}).build();
Upvotes: 1
Reputation: 21
Try this:
init {
val mediaController = MediaControllerCompat(context, sessionToken)
notificationManager = PlayerNotificationManager.Builder(
context,
NOTIFICATION_ID, NOTIFICATION_CHANNEL_ID
)
.setChannelNameResourceId(R.string.notification_channel_name)
.setChannelDescriptionResourceId(R.string.notification_channel_description)
.setMediaDescriptionAdapter(DescriptionAdapter(mediaController))
.setNotificationListener(notificationListener)
.build()
.apply {
setSmallIcon(R.drawable.ic_music)
setMediaSessionToken(sessionToken)
}
}
Upvotes: 2
Reputation: 2485
PlayerNotificationManager.createWithNotificationChannel were deprecated in favor of PlayerNotificationManager.Builder
refer
use
public Builder(Context context,int notificationId,String channelId,MediaDescriptionAdapter mediaDescriptionAdapter)
Upvotes: 1
Reputation: 55
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'
Upvotes: -3