播放器相关功能

简介: 播放器相关功能

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);


目录
相关文章
|
4天前
|
移动开发 Android开发 HTML5
uniapp视频播放功能
uniapp视频播放功能
270 0
|
8月前
|
JavaScript API
uniapp实现录音功能和播放功能
uniapp实现录音功能和播放功能
|
4天前
uniapp制作录音播放功能
uniapp制作录音播放功能
79 0
|
4天前
|
存储
uniapp录音功能和音频播放功能制作
uniapp录音功能和音频播放功能制作
166 0
|
8月前
|
编解码 网络协议 Android开发
6款真正好用的播放器推荐
GOM player 是一款本身装有视频播放所需的解码,及占用系统资源少,并且能以最优秀的画质来观看多种格式影片的播放程序。
238 0
|
9月前
|
前端开发 JavaScript
uniapp 录音和播放功能
uniapp 录音和播放功能
231 0