1.申请vibrate权限
<uses-permission android:name="android.permission.VIBRATE" />
2.获取vibrate服务
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); long[] pattern = { 10, 200 }; // OFF/ON/OFF/ON... vibrator.vibrate(pattern, -1);
3.手势的监听
创建GestureDetector
gestureDetector = new GestureDetector( new GestureDetector.OnGestureListener() { @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { final double FLING_MIN_DISTANCE = 0.5; final double FLING_MIN_VELOCITY = 0.5; if (e1.getY() - e2.getY() > FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { Log.e(TAG, "up"); setBrightness(20); } if (e1.getY() - e2.getY() < FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { Log.e(TAG, "down"); setBrightness(-20); } return true; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } }){ };
重写onTouchEvent方法
@Override public boolean onTouchEvent(MotionEvent event) { boolean result = gestureDetector.onTouchEvent(event); return result; }
4.调节亮度
screenBrightness 的范围是0-1
public void setBrightness(float brightness) { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = lp.screenBrightness + brightness / 255.0f; if (lp.screenBrightness > 1) { lp.screenBrightness = 1; } else if (lp.screenBrightness < 0.2) { lp.screenBrightness = (float) 0.2; } Log.e(TAG, "lp.screenBrightness= " + lp.screenBrightness); getWindow().setAttributes(lp); }
5.调节音量
AudioManager.FLAG_SHOW_UI会显示音量进度条,显示当前音量大小
private void setSound(int i) { AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); if (i>0){ audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND); }else { audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); } }
6.横竖屏的切换
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
7.隐藏actionBar
getSupportActionBar().hide();
8.倍速播放
private void setPlayerSpeed(float speed){ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { PlaybackParams playbackParams = mediaPlayer.getPlaybackParams(); playbackParams.setSpeed(speed); mediaPlayer.setPlaybackParams(playbackParams); } }
9.监听横竖屏
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); ViewGroup.LayoutParams layoutParams = surface.getLayoutParams(); Log.e(TAG,mWindowManager.getDefaultDisplay().getWidth()+""); Log.e(TAG,mWindowManager.getDefaultDisplay().getHeight()+""); if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){ width = mWindowManager.getDefaultDisplay().getWidth()/2; layoutParams.height=videoWidth; layoutParams.width=500; Toast.makeText(getApplicationContext(), "横屏", Toast.LENGTH_SHORT).show(); }else{ width = mWindowManager.getDefaultDisplay().getHeight()/2; layoutParams.height=videoHeight; layoutParams.width=videoWidth; Toast.makeText(getApplicationContext(), "竖屏", Toast.LENGTH_SHORT).show(); } surface.setLayoutParams(layoutParams); }
10.播放视频
mediaPlayer = MediaPlayer.create(this,R.raw.douyin);//创建 //设置准备监听 mediaPlayer.setOnPreparedListener(this); //设置结束监听 mediaPlayer.setOnCompletionListener(this); mediaPlayer.setSurface(surface.getHolder().getSurface());//设置画布
@Override public void onPrepared(MediaPlayer mediaPlayer) { Log.e("TAG","onPrepared"); mediaPlayer.start(); }
@Override public void onCompletion(MediaPlayer mediaPlayer) { Log.e("TAG","onCompletion"); btn.setText("开始"); mediaPlayer.release(); }
11.快进播放
mediaPlayer.seekTo(currentPosition+5000);