播放器相关功能

简介: 播放器相关功能

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


目录
相关文章
|
JavaScript API
uniapp实现录音功能和播放功能
uniapp实现录音功能和播放功能
|
移动开发 前端开发 JavaScript
整合阿里云播放器播放(1) | 学习笔记
快速学习 整合阿里云播放器播放(1)
309 0
整合阿里云播放器播放(1) | 学习笔记
|
编解码 网络协议 Android开发
6款真正好用的播放器推荐
GOM player 是一款本身装有视频播放所需的解码,及占用系统资源少,并且能以最优秀的画质来观看多种格式影片的播放程序。
444 0
|
移动开发 JavaScript 前端开发
整合阿里云播放器播放(2) | 学习笔记
快速学习 整合阿里云播放器播放(2)
201 0
整合阿里云播放器播放(2) | 学习笔记
阿里云移动端播放器高级功能---直播时移
基本介绍 通常都知道直播是无法seek拖动的,那么针对在直播中想回看之前直播过的内容的用户来说,直播时移就能派上用场。我们阿里云播放器支持了直播时移功能,用户能较为方面和快速的使用直播时移的功能。 先来看一下直播时移的介绍:时移直播基于常规的HLS视频直播,直播推流被切分成TS分片,通过HLS协...
11172 0
阿里云移动端播放器高级功能---UI播放器
用户想要实现一个视频播放除了要集成我们播放器SDK之外,还需要做一些UI交互的东西。要实现一个完整的视频播放还是需要做很多工作的。那么我们提供了一套完整的UI播放器,用户可以非常快速的集成进去来实现完整的播放器功能。
5824 0
|
数据安全/隐私保护
阿里云移动端播放器高级功能---视频下载
基本介绍 优酷、爱奇艺、腾讯等主流的视频类App都有视频离线下载的功能,主要目的是在wifi下将视频离线在本地,然后在无网或者4G的情况下去观看离线视频。那么阿里云播放器也提供了视频下载的功能。这个功能主要针对的是点播视频,也就是vid播放的视频的下载。
6286 0
|
Web App开发 移动开发 编解码
阿里云播放器SDK的正确打开方式 | Aliplayer Web播放器介绍及功能实现(三)
阿里云播放器SDK(ApsaraVideo for Player SDK)是阿里视频云端到云到端服务的重要一环,除了支持点播和直播的基础播放功能外,还深度融合视频云业务,支持视频的加密播放、安全下载、首屏秒开、低延时等业务场景,为用户提供简单、快速、安全、稳定的视频播放服务。
19996 0