Java Code Examples for android.view.KeyEvent#KEYCODE_MEDIA_FAST_FORWARD
The following examples show how to use
android.view.KeyEvent#KEYCODE_MEDIA_FAST_FORWARD .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: PlayerActivity.java From Android-Example-HLS-ExoPlayer with Apache License 2.0 | 6 votes |
@Override public boolean dispatchKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode(); if (playerControl.canSeekForward() && keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { if (event.getAction() == KeyEvent.ACTION_DOWN) { playerControl.seekTo(playerControl.getCurrentPosition() + 15000); // milliseconds show(); } return true; } else if (playerControl.canSeekBackward() && keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) { if (event.getAction() == KeyEvent.ACTION_DOWN) { playerControl.seekTo(playerControl.getCurrentPosition() - 5000); // milliseconds show(); } return true; } return super.dispatchKeyEvent(event); }
Example 2
Source File: VideoPlayerActivity.java From droidkaigi2016 with Apache License 2.0 | 6 votes |
@Override public boolean dispatchKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode(); if (playerControl.canSeekForward() && (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT)) { if (event.getAction() == KeyEvent.ACTION_DOWN) { playerControl.seekTo(playerControl.getCurrentPosition() + 15000); // milliseconds show(); } return true; } else if (playerControl.canSeekBackward() && (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND || keyCode == KeyEvent.KEYCODE_DPAD_LEFT)) { if (event.getAction() == KeyEvent.ACTION_DOWN) { playerControl.seekTo(playerControl.getCurrentPosition() - 5000); // milliseconds show(); } return true; } return super.dispatchKeyEvent(event); }
Example 3
Source File: MusicControlNotification.java From react-native-music-control with MIT License | 6 votes |
/** * Code taken from newer version of the support library located in PlaybackStateCompat.toKeyCode * Replace this to PlaybackStateCompat.toKeyCode when React Native updates the support library */ private int toKeyCode(long action) { if (action == PlaybackStateCompat.ACTION_PLAY) { return KeyEvent.KEYCODE_MEDIA_PLAY; } else if (action == PlaybackStateCompat.ACTION_PAUSE) { return KeyEvent.KEYCODE_MEDIA_PAUSE; } else if (action == PlaybackStateCompat.ACTION_SKIP_TO_NEXT) { return KeyEvent.KEYCODE_MEDIA_NEXT; } else if (action == PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) { return KeyEvent.KEYCODE_MEDIA_PREVIOUS; } else if (action == PlaybackStateCompat.ACTION_STOP) { return KeyEvent.KEYCODE_MEDIA_STOP; } else if (action == PlaybackStateCompat.ACTION_FAST_FORWARD) { return KeyEvent.KEYCODE_MEDIA_FAST_FORWARD; } else if (action == PlaybackStateCompat.ACTION_REWIND) { return KeyEvent.KEYCODE_MEDIA_REWIND; } else if (action == PlaybackStateCompat.ACTION_PLAY_PAUSE) { return KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE; } return KeyEvent.KEYCODE_UNKNOWN; }
Example 4
Source File: TransportMediator.java From CodenameOne with GNU General Public License v2.0 | 6 votes |
static boolean isMediaKey(int keyCode) { switch (keyCode) { case KEYCODE_MEDIA_PLAY: case KEYCODE_MEDIA_PAUSE: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_MUTE: case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_REWIND: case KEYCODE_MEDIA_RECORD: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: { return true; } } return false; }
Example 5
Source File: TransportMediator.java From android-recipes-app with Apache License 2.0 | 6 votes |
static boolean isMediaKey(int keyCode) { switch (keyCode) { case KEYCODE_MEDIA_PLAY: case KEYCODE_MEDIA_PAUSE: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_MUTE: case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_REWIND: case KEYCODE_MEDIA_RECORD: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: { return true; } } return false; }
Example 6
Source File: TransportMediator.java From adt-leanback-support with Apache License 2.0 | 6 votes |
static boolean isMediaKey(int keyCode) { switch (keyCode) { case KEYCODE_MEDIA_PLAY: case KEYCODE_MEDIA_PAUSE: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_MUTE: case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_REWIND: case KEYCODE_MEDIA_RECORD: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: { return true; } } return false; }
Example 7
Source File: TransportMediator.java From V.FlyoutTest with MIT License | 6 votes |
static boolean isMediaKey(int keyCode) { switch (keyCode) { case KEYCODE_MEDIA_PLAY: case KEYCODE_MEDIA_PAUSE: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_MUTE: case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_REWIND: case KEYCODE_MEDIA_RECORD: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: { return true; } } return false; }
Example 8
Source File: Utils.java From Noyze with Apache License 2.0 | 6 votes |
/** * @return True if a {@link android.view.KeyEvent} corresponds to a media action. */ public static boolean isMediaKeyCode(final int keyCode) { switch (keyCode) { case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_MEDIA_PLAY: case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: case KeyEvent.KEYCODE_MEDIA_PAUSE: case KeyEvent.KEYCODE_MEDIA_CLOSE: case KeyEvent.KEYCODE_MEDIA_EJECT: case KeyEvent.KEYCODE_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_MEDIA_RECORD: case KeyEvent.KEYCODE_MEDIA_REWIND: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: return true; } return false; }
Example 9
Source File: ExoVideoPlaybackControlView.java From ExoVideoView with Apache License 2.0 | 5 votes |
@SuppressLint("InlinedApi") private static boolean isHandledMediaKey(int keyCode) { return keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD || keyCode == KeyEvent.KEYCODE_MEDIA_REWIND || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE || keyCode == KeyEvent.KEYCODE_MEDIA_NEXT || keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS; }
Example 10
Source File: PlaybackControlView.java From K-Sonic with MIT License | 5 votes |
/** * Called to process media key events. Any {@link KeyEvent} can be passed but only media key * events will be handled. * * @param event A key event. * @return Whether the key event was handled. */ public boolean dispatchMediaKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode(); if (player == null || !isHandledMediaKey(keyCode)) { return false; } if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: fastForward(); break; case KeyEvent.KEYCODE_MEDIA_REWIND: rewind(); break; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: player.setPlayWhenReady(!player.getPlayWhenReady()); break; case KeyEvent.KEYCODE_MEDIA_PLAY: player.setPlayWhenReady(true); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: player.setPlayWhenReady(false); break; case KeyEvent.KEYCODE_MEDIA_NEXT: next(); break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: previous(); break; default: break; } } show(); return true; }
Example 11
Source File: GUIListeners.java From Beats with BSD 3-Clause "New" or "Revised" License | 5 votes |
static public int keyCode2Direction(int keyCode) { /* interprets a keyCode as a direction * input: keyCode - a key code passed to handler * output: [0 1 2 3] -> [left down up right]; -1 -> unknown */ switch (keyCode) { // WASD, ZX-NM spread, AS-KL spread // 12-90 spread, D-Pad // Headphone music controller case KeyEvent.KEYCODE_A: case KeyEvent.KEYCODE_Z: case KeyEvent.KEYCODE_1: case KeyEvent.KEYCODE_DPAD_LEFT: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_REWIND: case KeyEvent.KEYCODE_BUTTON_X: return 0; case KeyEvent.KEYCODE_S: case KeyEvent.KEYCODE_X: case KeyEvent.KEYCODE_2: case KeyEvent.KEYCODE_DPAD_DOWN: case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_BUTTON_A: return 1; case KeyEvent.KEYCODE_W: case KeyEvent.KEYCODE_N: case KeyEvent.KEYCODE_K: case KeyEvent.KEYCODE_9: case KeyEvent.KEYCODE_DPAD_UP: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_BUTTON_Y: return 2; case KeyEvent.KEYCODE_D: case KeyEvent.KEYCODE_M: case KeyEvent.KEYCODE_L: case KeyEvent.KEYCODE_0: case KeyEvent.KEYCODE_DPAD_RIGHT: case KeyEvent.KEYCODE_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: case KeyEvent.KEYCODE_BUTTON_B: return 3; default: return -1; } }
Example 12
Source File: TabWebContentsDelegateAndroid.java From delion with Apache License 2.0 | 5 votes |
/** * Redispatches unhandled media keys. This allows bluetooth headphones with play/pause or * other buttons to function correctly. */ @TargetApi(19) private void handleMediaKey(KeyEvent e) { if (Build.VERSION.SDK_INT < 19) return; switch (e.getKeyCode()) { case KeyEvent.KEYCODE_MUTE: case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_PLAY: case KeyEvent.KEYCODE_MEDIA_PAUSE: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_REWIND: case KeyEvent.KEYCODE_MEDIA_RECORD: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: case KeyEvent.KEYCODE_MEDIA_CLOSE: case KeyEvent.KEYCODE_MEDIA_EJECT: case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: AudioManager am = (AudioManager) mTab.getApplicationContext().getSystemService( Context.AUDIO_SERVICE); am.dispatchMediaKeyEvent(e); break; default: break; } }
Example 13
Source File: CustomizeControlView.java From bcm-android with GNU General Public License v3.0 | 5 votes |
public boolean dispatchMediaKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode(); if (player == null || !isHandledMediaKey(keyCode)) { return false; } if (event.getAction() == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { fastForward(); } else if (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND) { rewind(); } else if (event.getRepeatCount() == 0) { switch (keyCode) { case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: controlDispatcher.dispatchSetPlayWhenReady(player, !player.getPlayWhenReady()); break; case KeyEvent.KEYCODE_MEDIA_PLAY: controlDispatcher.dispatchSetPlayWhenReady(player, true); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: controlDispatcher.dispatchSetPlayWhenReady(player, false); break; case KeyEvent.KEYCODE_MEDIA_NEXT: next(); break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: previous(); break; default: break; } } } return true; }
Example 14
Source File: ReactActivityDelegate.java From react-native-GPay with MIT License | 5 votes |
public boolean onKeyDown(int keyCode, KeyEvent event) { if (getReactNativeHost().hasInstance() && getReactNativeHost().getUseDeveloperSupport() && keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { event.startTracking(); return true; } return false; }
Example 15
Source File: CustomPlayBackController.java From leafpicrevived with GNU General Public License v3.0 | 5 votes |
@Override public boolean dispatchKeyEvent(KeyEvent event) { if (player == null || event.getAction() != KeyEvent.ACTION_DOWN) { return super.dispatchKeyEvent(event); } switch (event.getKeyCode()) { case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: case KeyEvent.KEYCODE_DPAD_RIGHT: fastForward(); break; case KeyEvent.KEYCODE_MEDIA_REWIND: case KeyEvent.KEYCODE_DPAD_LEFT: rewind(); break; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: player.setPlayWhenReady(!player.getPlayWhenReady()); break; case KeyEvent.KEYCODE_MEDIA_PLAY: player.setPlayWhenReady(true); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: player.setPlayWhenReady(false); break; case KeyEvent.KEYCODE_MEDIA_NEXT: next(); break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: previous(); break; default: return false; } show(); return true; }
Example 16
Source File: CustomizeControlView.java From bcm-android with GNU General Public License v3.0 | 5 votes |
@SuppressLint("InlinedApi") private static boolean isHandledMediaKey(int keyCode) { return keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD || keyCode == KeyEvent.KEYCODE_MEDIA_REWIND || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE || keyCode == KeyEvent.KEYCODE_MEDIA_NEXT || keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS; }
Example 17
Source File: VideoPlayActivity.java From dtube-mobile-unofficial with Apache License 2.0 | 4 votes |
@Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { Log.d("dtube","Key event "+event.getKeyCode()+"VS"+KeyEvent.KEYCODE_MEDIA_REWIND); switch (event.getKeyCode()) { case KeyEvent.KEYCODE_ENTER: case KeyEvent.KEYCODE_DPAD_CENTER: if (getCurrentFocus() != null && getCurrentFocus() instanceof ViewGroup) { //Open a dialog for options on a comment if (getCurrentFocus().getId() == R.id.comments_lv) { final View commentView = commentsListView.getSelectedView(); final AlertDialog.Builder builderSingle = new AlertDialog.Builder(VideoPlayActivity.this); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(VideoPlayActivity.this, android.R.layout.select_dialog_item); arrayAdapter.add(getResources().getString(R.string.like_comment)); arrayAdapter.add(getResources().getString(R.string.dislike_comment)); builderSingle.setNegativeButton("cancel", null); builderSingle.setAdapter(arrayAdapter, (dialog, which) -> { switch (which) { case 0: commentView.findViewById(R.id.comment_like).performClick(); break; case 1: commentView.findViewById(R.id.comment_dislike).performClick(); break; case 2: commentView.findViewById(R.id.comment_reply).performClick(); break; } }); //dialog display is delayed to prevent misfocus commentView.postDelayed(builderSingle::show,10); Log.d("dtube", "dispatch" + ((ViewGroup) getCurrentFocus()).getChildAt(0).getId() + "VS" + R.id.comment_item); }else if (getCurrentFocus().getId() == R.id.suggestions_lv) { //select the suggested video onItemClick(suggestedVideosListView.getSelectedItemPosition()); } } break; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: wakeMediaControls(); MediaPlayerSingleton.getInstance(this).togglePlayPause(); break; case KeyEvent.KEYCODE_MEDIA_REWIND: case KeyEvent.KEYCODE_MEDIA_STEP_BACKWARD: case KeyEvent.KEYCODE_MEDIA_SKIP_BACKWARD: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: wakeMediaControls(); MediaPlayerSingleton.getInstance(this).rewind(); break; case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: case KeyEvent.KEYCODE_MEDIA_SKIP_FORWARD: case KeyEvent.KEYCODE_MEDIA_STEP_FORWARD: case KeyEvent.KEYCODE_MEDIA_NEXT: wakeMediaControls(); MediaPlayerSingleton.getInstance(this).fastForward(); break; } } return super.dispatchKeyEvent(event); }
Example 18
Source File: VideoPlayerActivity.java From VCL-Android with Apache License 2.0 | 4 votes |
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_BUTTON_B) return super.onKeyDown(keyCode, event); if (mIsLoading) { switch (keyCode) { case KeyEvent.KEYCODE_S: case KeyEvent.KEYCODE_MEDIA_STOP: exitOK(); return true; } return false; } showOverlayTimeout(OVERLAY_TIMEOUT); switch (keyCode) { case KeyEvent.KEYCODE_F: case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: case KeyEvent.KEYCODE_MEDIA_NEXT: seekDelta(10000); return true; case KeyEvent.KEYCODE_R: case KeyEvent.KEYCODE_MEDIA_REWIND: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: seekDelta(-10000); return true; case KeyEvent.KEYCODE_BUTTON_R1: seekDelta(60000); return true; case KeyEvent.KEYCODE_BUTTON_L1: seekDelta(-60000); return true; case KeyEvent.KEYCODE_BUTTON_A: if (mOverlayProgress.getVisibility() == View.VISIBLE) return false; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_MEDIA_PLAY: case KeyEvent.KEYCODE_MEDIA_PAUSE: case KeyEvent.KEYCODE_SPACE: if (mIsNavMenu) return navigateDvdMenu(keyCode); else if (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) //prevent conflict with remote control return super.onKeyDown(keyCode, event); else doPlayPause(); return true; case KeyEvent.KEYCODE_O: case KeyEvent.KEYCODE_BUTTON_Y: case KeyEvent.KEYCODE_MENU: showAdvancedOptions(mAdvOptions); return true; case KeyEvent.KEYCODE_V: case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: case KeyEvent.KEYCODE_BUTTON_X: onAudioSubClick(mTracks); return true; case KeyEvent.KEYCODE_N: showNavMenu(); return true; case KeyEvent.KEYCODE_A: resizeVideo(); return true; case KeyEvent.KEYCODE_M: case KeyEvent.KEYCODE_VOLUME_MUTE: updateMute(); return true; case KeyEvent.KEYCODE_S: case KeyEvent.KEYCODE_MEDIA_STOP: exitOK(); return true; case KeyEvent.KEYCODE_DPAD_UP: case KeyEvent.KEYCODE_DPAD_DOWN: case KeyEvent.KEYCODE_DPAD_LEFT: case KeyEvent.KEYCODE_DPAD_RIGHT: case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: if (mIsNavMenu) return navigateDvdMenu(keyCode); else return super.onKeyDown(keyCode, event); case KeyEvent.KEYCODE_J: delayAudio(-50000l); return true; case KeyEvent.KEYCODE_K: delayAudio(50000l); return true; case KeyEvent.KEYCODE_G: delaySubs(-50000l); return true; case KeyEvent.KEYCODE_H: delaySubs(50000l); return true; case KeyEvent.KEYCODE_VOLUME_DOWN: case KeyEvent.KEYCODE_VOLUME_UP: if (mMute) { updateMute(); return true; } else return false; } return super.onKeyDown(keyCode, event); }
Example 19
Source File: VideoControlsLeanback.java From ExoMedia with Apache License 2.0 | 4 votes |
/** * NOTE: the view is not always the currently focused view, thus the * {@link #currentFocus} variable */ @Override public boolean onKey(View view, int keyCode, KeyEvent event) { if (event.getAction() != KeyEvent.ACTION_DOWN) { return false; } switch (keyCode) { case KeyEvent.KEYCODE_BACK: if (isVisible && canViewHide && !isLoading) { hide(); return true; } else if (controlsParent.getAnimation() != null) { //This occurs if we are animating the hide or show of the controls return true; } break; case KeyEvent.KEYCODE_DPAD_UP: showTemporary(); return true; case KeyEvent.KEYCODE_DPAD_DOWN: hide(); return true; case KeyEvent.KEYCODE_DPAD_LEFT: showTemporary(); focusPrevious(currentFocus); return true; case KeyEvent.KEYCODE_DPAD_RIGHT: showTemporary(); focusNext(currentFocus); return true; case KeyEvent.KEYCODE_DPAD_CENTER: showTemporary(); currentFocus.callOnClick(); return true; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: onPlayPauseClick(); return true; case KeyEvent.KEYCODE_MEDIA_PLAY: if (videoView != null && !videoView.isPlaying()) { videoView.start(); return true; } break; case KeyEvent.KEYCODE_MEDIA_PAUSE: if (videoView != null && videoView.isPlaying()) { videoView.pause(); return true; } break; case KeyEvent.KEYCODE_MEDIA_NEXT: onNextClick(); return true; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: onPreviousClick(); return true; case KeyEvent.KEYCODE_MEDIA_REWIND: onRewindClick(); return true; case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: onFastForwardClick(); return true; } return false; }
Example 20
Source File: MediaNotificationManager.java From 365browser with Apache License 2.0 | 4 votes |
@VisibleForTesting void processAction(Intent intent, MediaNotificationManager manager) { String action = intent.getAction(); // Before Android L, instead of using the MediaSession callback, the system will fire // ACTION_MEDIA_BUTTON intents which stores the information about the key event. if (Intent.ACTION_MEDIA_BUTTON.equals(action)) { KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event == null) return; if (event.getAction() != KeyEvent.ACTION_DOWN) return; switch (event.getKeyCode()) { case KeyEvent.KEYCODE_MEDIA_PLAY: manager.onPlay( MediaNotificationListener.ACTION_SOURCE_MEDIA_SESSION); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: manager.onPause( MediaNotificationListener.ACTION_SOURCE_MEDIA_SESSION); break; case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: if (manager.mMediaNotificationInfo.isPaused) { manager.onPlay(MediaNotificationListener.ACTION_SOURCE_MEDIA_SESSION); } else { manager.onPause( MediaNotificationListener.ACTION_SOURCE_MEDIA_SESSION); } break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: manager.onMediaSessionAction(MediaSessionAction.PREVIOUS_TRACK); break; case KeyEvent.KEYCODE_MEDIA_NEXT: manager.onMediaSessionAction(MediaSessionAction.NEXT_TRACK); break; case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: manager.onMediaSessionAction(MediaSessionAction.SEEK_FORWARD); break; case KeyEvent.KEYCODE_MEDIA_REWIND: manager.onMediaSessionAction(MediaSessionAction.SEEK_BACKWARD); break; default: break; } } else if (ACTION_STOP.equals(action) || ACTION_SWIPE.equals(action) || ACTION_CANCEL.equals(action)) { manager.onStop( MediaNotificationListener.ACTION_SOURCE_MEDIA_NOTIFICATION); stopListenerService(); } else if (ACTION_PLAY.equals(action)) { manager.onPlay(MediaNotificationListener.ACTION_SOURCE_MEDIA_NOTIFICATION); } else if (ACTION_PAUSE.equals(action)) { manager.onPause(MediaNotificationListener.ACTION_SOURCE_MEDIA_NOTIFICATION); } else if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(action)) { manager.onPause(MediaNotificationListener.ACTION_SOURCE_HEADSET_UNPLUG); } else if (ACTION_PREVIOUS_TRACK.equals(action)) { manager.onMediaSessionAction(MediaSessionAction.PREVIOUS_TRACK); } else if (ACTION_NEXT_TRACK.equals(action)) { manager.onMediaSessionAction(MediaSessionAction.NEXT_TRACK); } else if (ACTION_SEEK_FORWARD.equals(action)) { manager.onMediaSessionAction(MediaSessionAction.SEEK_FORWARD); } else if (ACTION_SEEK_BACKWARD.equals(action)) { manager.onMediaSessionAction(MediaSessionAction.SEEK_BACKWARD); } }