public static void registerCallback(Object controllerObj, Object callbackObj, Handler handler) { ((MediaController) controllerObj).registerCallback( (MediaController.Callback)callbackObj, handler); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void registerSessionCallbacks() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { for (MediaController controller : mActiveSessions) { if (mSessionCallback == null) { mSessionCallback = new MediaController.Callback() { @Override public void onMetadataChanged(MediaMetadata metadata) { if (metadata != null) { String trackName = metadata.getString(MediaMetadata.METADATA_KEY_TITLE); String artistName = metadata.getString(MediaMetadata.METADATA_KEY_ARTIST); String albumArtistName = metadata.getString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST); String albumName = metadata.getString(MediaMetadata.METADATA_KEY_ALBUM); MicroService.scrobbleTrack(trackName, artistName, albumName, albumArtistName); } } }; } controller.registerCallback(mSessionCallback); } } }
private void createPlayer(MediaController controller) { MprisReceiverPlayer player = new MprisReceiverPlayer(controller, AppsHelper.appNameLookup(context, controller.getPackageName())); controller.registerCallback(new MprisReceiverCallback(this, player), new Handler(Looper.getMainLooper())); players.put(player.getName(), player); }
private void updateMediaSessionCallback(MediaController activeController) { boolean clearing = false; if (activeController != this.mLastMediaController) { if (this.mLastMediaController != null) { this.mLastMediaController.unregisterCallback(this.mMediaSessionCallback); } if (activeController != null) { activeController.registerCallback(this.mMediaSessionCallback); } this.mLastMediaController = activeController; } if (this.mLastMediaController == null) { clearing = true; } if (this.mNowPlayCardListener != null) { this.mNowPlayCardListener.onClientChanged(clearing); } if (!clearing) { updateMetadata(this.mLastMediaController.getMetadata()); updatePlayback(this.mLastMediaController.getPlaybackState()); } }