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