• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當(dāng)前的位置是:  首頁 > 新聞 > 國內(nèi) >
     首頁 > 新聞 > 國內(nèi) >

    Android 8.0 中如何實現(xiàn)視頻通話的畫中畫模式

    2017-12-11 13:53:00   作者:   來源:CTI論壇   評論:0  點擊:


      Android 8.0 當(dāng)中允許 Activiy 以畫中畫模式展現(xiàn)。這是一種多窗口模式的改進加強,在視頻類應(yīng)用中用處非常大,有了這種模式,就可以在視頻通話或者觀看直播的過程當(dāng)中打開另外的應(yīng)用而不用退出當(dāng)前視頻。更詳細(xì)的就不再累述了,大家去閱讀官方文檔就行。
      這里以 Agora SDK 為例來給大家展示下該特性,實際上不用 Agora SDK 做任何修改。
      準(zhǔn)備環(huán)境
    • Android 8.0 或以上版本手機
    • Agora SDK 1.14.0 或 以上 版本
    • Android Studio 3.0 或以上版本(非必需)
      如何實現(xiàn)畫中畫模式
      默認(rèn)應(yīng)用是不支持畫中畫模式的,需要給視頻所在的 Activity 做些配置,如下在 AnroidManifest.xml加上屬性 resizeableActivity/supportsPictureInPicture 并均設(shè)置為 true
    • android:resizeableActivity="true"
    • android:supportsPictureInPicture="true"
    • android:configChanges=
    • "screenSize|smallestScreenSize|screenLayout|orientation"
      為了進入畫中畫模式,Activty 必需要用 enterPictureInPictureMode(PictureInPictureParams params)方法,非常的簡單,但是為了告訴系統(tǒng)進入畫中畫模式之后,Activity 界面在整個屏幕當(dāng)中的布局,我們需要設(shè)置一些參數(shù)。我們這里簡單設(shè)置下,具體在使用的時候需要根據(jù)屏幕的分辨率動態(tài)取設(shè)置,更多信息參考 官方文檔。
      PictureInPictureParams params = new PictureInPictureParams.Builder()
    • setAspectRatio(new Rational(10, 16))
    • build();
      當(dāng)然需要在程序當(dāng)中控制 Acticity 界面當(dāng)中的內(nèi)容,比如我們可以隱藏自己本地的預(yù)覽畫面,隱藏不需要的按鈕信息等等,這個實現(xiàn)也非常簡單。
      @Override
      public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode, Configuration newConfig) {
      super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig);
      FrameLayout container = findViewById(R.id.local_video_view_container);
      SurfaceView surfaceView = (SurfaceView) container.getChildAt(0);
      surfaceView.setZOrderMediaOverlay(!isInPictureInPictureMode);
      surfaceView.setVisibility(isInPictureInPictureMode ? View.GONE : View.VISIBLE);
      container.setVisibility(isInPictureInPictureMode ? View.GONE : View.VISIBLE);
      }
      另外值得一說的是,進入畫中畫模式,系統(tǒng)會觸發(fā)生命周期的方法 onPause/onResume 方法,我們需要根據(jù)需要適當(dāng)?shù)淖鲂┎僮鳎热缡钱嬛挟嬆J降脑挘筒蛔鋈魏尾僮鳎粢曨l流繼續(xù),否則的話,就關(guān)閉視頻流,反正在后臺也看不見視頻。
      運行截圖
      開始行動吧
      還等什么,了解了這些之后,快給自己的應(yīng)用加上這個功能吧。我們也提供了 示例代碼供參考。
      Agora SDK下載鏈接:https://document.agora.io/cn/2.0/sdk/
      Android官方文檔:https://developer.android.com/guide/topics/ui/picture-in-picture.html
      示例代碼:https://github.com/AgoraIO/Agora-Picture-in-Picture-Android
      課程預(yù)告:從0開發(fā)Android視頻通話
      時間:12月13日(周三)16:00-17:00
      內(nèi)容:
    • 通信和直播的基本概念
    • Agora.SDK 2.0重大更新介紹
    • Agora Android SDK API調(diào)用邏輯
    • 開發(fā)環(huán)境準(zhǔn)備
    • 快速完成一個Agora android demo,功能包括:創(chuàng)建頻道、加入頻道、創(chuàng)建視頻通話、離開頻道、開關(guān)攝像頭、靜音、畫中畫。
    • 如何測試。視頻通話需要進行哪些測試,如何進行簡單的測試
    • Q&A
    【免責(zé)聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 宁国市| 阿拉善盟| 永泰县| 来安县| 沙河市| 大关县| 怀仁县| 新巴尔虎左旗| 瑞安市| 建阳市| 华宁县| 东乡族自治县| 孟连| 阜城县| 麦盖提县| 霍邱县| 瓮安县| 唐河县| 车险| 罗甸县| 原平市| 松潘县| 庆安县| 建水县| 大厂| 扶余县| 浪卡子县| 灵寿县| 普陀区| 靖安县| 华坪县| 开平市| 平果县| 河池市| 新建县| 崇义县| 信阳市| 溧水县| 乌审旗| 韩城市| 汝南县| http://444 http://444 http://444 http://444 http://444 http://444