android直播播放器(集成阿里云基础播放器)
1.播放器初建:
先在application中需先初始化阿里云的直播播放器
AliVcMediaPlayer.init(getApplicationContext());
在activity中实列化播放器,需要先实例化一个surfacceview
mPlayer = new AliVcMediaPlayer(this, mSurfaceView); if(mPlayer != null){ mPlayer.prepareAndPlay(mUrl); } mPlayer.play(); mSurfaceView.setOnClickListener(new mClickListener()); }
2.播放器全屏:
播放器全屏的设置涉及到android的横竖屏的问题,即在进入全屏模式的时候需要android的屏幕为横屏模式,在同一个activity中进行横竖屏转换的时候会进行activity的重载,如果是做视频播放器的话需要记录当前播放进度。也可通过在activity的节点加入
android:configChanges="keyboardHidden|orientation|screenSize"
不让activity重载
接下来就是一些隐藏状态栏,导航的栏的事。
我在全屏中设置了一个rativelayout的surfaceview的父布局,通过设置父布局,surfaceview的属性为much_parent来控制播放器的大小布局。
设置rativelayout大小的方法为:
RelativeLayout ss = (RelativeLayout) findViewById(R.id.rl_1);
ss.setLayoutParams(new RelativeLayout.LayoutParams(mScreenHeight,mScreenWidth));
其中在获得手机屏幕大小网上说了很多种方法都没有讲导航栏的高度算进去,不是手机的真是高度,是因为谷歌原来的导航栏和状态栏是不支持定制的,后面出现可定制以后方法比较混乱然后在17以后出标准的获取手机真实宽度和高度的方法:
Context context = getApplicationContext(); DisplayMetrics dm = new DisplayMetrics(); WindowManager windowMgr = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); windowMgr.getDefaultDisplay().getRealMetrics(dm); int mScreenHeight = dm.heightPixels; int mScreenWidth = dm.widthPixels;
3.设置单击事件出现控制组件
通过建立一个线程隐藏组件,当点击事件发生以后 ,hander.removeCallbacks(线程)移除线程显示组件然后设置一个延迟启动线程再次隐藏组件
Handler.postDelayed(线程,延迟时间(毫秒,int))
【android直播播放器(集成阿里云基础播放器)】
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)
- Android|Android install 多个设备时指定设备