最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 播放視頻常見問題小結

 更新時間:2017年04月16日 10:36:38   作者:ahubenkui  
這篇文章主要介紹了Android 播放視頻常見問題小結,需要的朋友可以參考下

在android 開發(fā)中常見到視頻播放的問題,在常規(guī)的視頻中 有直接用videoView + MediaController 或者 mediaController + serfercie holder

常見的問題

1 在播放中如何處理播放器的橫屏切換 和 播放器上的文案顯示的布局變化

在activity 中 設置

 android:configChanges="orientation|screenSize"

這樣在旋轉中,activity 就不會重建

重寫系統(tǒng)方法

public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
      initVideoLandLayout();
    } else {
      initVideoPortLayout();
    }
  }

通過 判斷 newConfig.orientation 來判斷 當前是橫屏還是豎屏, 這個是在看視頻的過程中去判斷是不是橫屏還是豎屏,在我門一開始播放視頻的時候,也可以去判斷,具體的處理方法是

 private void initVideoPlayerLayout() {
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    width = dm.widthPixels;
    heigh = dm.heightPixels;
    if (width / heigh > 0) { // 橫屏
      initVideoLandLayout();
      fullscreen = true;
    }
    if (width / heigh == 0) { //豎屏
      initVideoPortLayout();
    }
  }

在具體變化播放器上的布局的時候我們可以動態(tài)的去更換

 private void initVideoPortLayout() {
    RelativeLayout.LayoutParams videoLp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
    videoLp.addRule(RelativeLayout.CENTER_IN_PARENT);
    videoView.setLayoutParams(videoLp);
    videoView.start();
    RelativeLayout.LayoutParams hotelInfoLp = new RelativeLayout.LayoutParams(DeviceInfoUtil.getPixelFromDip(200), DeviceInfoUtil.getPixelFromDip(55));
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    hotelInfoLp.rightMargin = DeviceInfoUtil.getPixelFromDip(8);
    hotelInfoLp.bottomMargin = DeviceInfoUtil.getPixelFromDip(90);
    mHotelInfoLayout.setLayoutParams(hotelInfoLp);
  }

這是豎屏處理  

private void initVideoLandLayout() {
    RelativeLayout.LayoutParams layoutParams =
        new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    videoView.setLayoutParams(layoutParams);
    RelativeLayout.LayoutParams hotelInfoLp = new RelativeLayout.LayoutParams(DeviceInfoUtil.getPixelFromDip(200), DeviceInfoUtil.getPixelFromDip(55));
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    hotelInfoLp.rightMargin = DeviceInfoUtil.getPixelFromDip(8);
    hotelInfoLp.bottomMargin = DeviceInfoUtil.getPixelFromDip(95);
    mHotelInfoLayout.setLayoutParams(hotelInfoLp);
  }

這是橫屏處理

我門知道 系統(tǒng)的videoView 控件 自帶有播放,暫停 等進度條這是MediaContronller 當我們手點擊的時候 進度條會顯示,手離開界面的時候,會不顯示,這是videoView 中的方法

 @Override
  public boolean onTouchEvent(MotionEvent ev) {
    if (isInPlaybackState() && mMediaController != null) {
      toggleMediaControlsVisiblity();
    }
    return false;
  }

再朝下看

private void toggleMediaControlsVisiblity() {
    if (mMediaController.isShowing()) {
      mMediaController.hide();
    } else {
      mMediaController.show();
    }
  }

最終調的是 mMediaController.hide(); 和 mMediaController.show(),

所以我門在自己的播放器界面要是實現(xiàn)自己的布局和播放器進度條 重寫hide() 和 show() 方法即可

以上所述是小編給大家介紹的Android 播放視頻常見問題小結,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的,在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

最新評論

白玉县| 巨鹿县| 汽车| 岐山县| 东乌珠穆沁旗| 韩城市| 株洲市| 罗江县| 乌拉特中旗| 噶尔县| 大埔区| 宜宾县| 通渭县| 和静县| 黑水县| 兴隆县| 开江县| 花垣县| 宜城市| 龙山县| 五大连池市| 九寨沟县| 紫金县| 武平县| 司法| 惠来县| 吉木乃县| 高雄县| 宝应县| 突泉县| 瑞丽市| 互助| 洛宁县| 扎囊县| 蓬莱市| 敖汉旗| 勐海县| 邵武市| 博白县| 庄河市| 九寨沟县|