internal void InitMediaSession(string packageName, MediaServiceBinder binder) { try { if (mediaSessionCompat == null) { Intent nIntent = new Intent(applicationContext, typeof(MediaPlayer)); PendingIntent pIntent = PendingIntent.GetActivity(applicationContext, 0, nIntent, 0); RemoteComponentName = new ComponentName(packageName, new RemoteControlBroadcastReceiver().ComponentName); mediaSessionCompat = new MediaSessionCompat(applicationContext, "XamarinStreamingAudio", RemoteComponentName, pIntent); mediaControllerCompat = new MediaControllerCompat(applicationContext, mediaSessionCompat.SessionToken); NotificationManager = new MediaNotificationManagerImplementation(applicationContext, CurrentSession.SessionToken, _serviceType); } mediaSessionCompat.Active = true; mediaSessionCompat.SetCallback(binder.GetMediaPlayerService<MediaServiceBase>().AlternateRemoteCallback ?? new MediaSessionCallback(this)); mediaSessionCompat.SetFlags(MediaSessionCompat.FlagHandlesMediaButtons | MediaSessionCompat.FlagHandlesTransportControls); _packageName = packageName; _binder = binder; } catch (Exception ex) { Console.WriteLine(ex); } }
internal void InitMediaSession(string packageName, MediaServiceBinder binder) { try { if (mediaSessionCompat == null) { Intent nIntent = new Intent(applicationContext, typeof(MediaPlayer)); PendingIntent pIntent = PendingIntent.GetActivity(applicationContext, 0, nIntent, 0); RemoteComponentName = new ComponentName(packageName, new RemoteControlBroadcastReceiver().ComponentName); mediaSessionCompat = new MediaSessionCompat(applicationContext, "XamarinStreamingAudio", RemoteComponentName, pIntent); mediaControllerCompat = new MediaControllerCompat(applicationContext, mediaSessionCompat.SessionToken); } mediaSessionCompat.Active = true; //mediaSessionCompat.SetCallback(binder.GetMediaPlayerService().AlternateRemoteCallback ?? new MediaSessionCallback(binder)); mediaSessionCompat.SetFlags(MediaSessionCompat.FlagHandlesMediaButtons | MediaSessionCompat.FlagHandlesTransportControls); NotificationManager = new MediaNotificationManagerImplementation(applicationContext, CurrentSession.SessionToken, typeof(MediaPlayerService)); _packageName = packageName; _binder = binder; } catch (Exception ex) { Console.WriteLine(ex); } }
public override IBinder OnBind(Intent intent) { Binder = new MediaServiceBinder(this); return Binder; }