<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          字節(jié)跳動又一開源力作發(fā)布!

          共 2652字,需瀏覽 6分鐘

           ·

          2020-11-03 13:19



          點擊“開發(fā)者技術(shù)前線”,選擇“星標?”

          在看|星標|留言,? 真愛

          來自:開源最前線


          前幾日,字節(jié)跳動發(fā)送郵件,宣布將給予員工發(fā)放獎金。金額為2020年8月固定薪酬的 50%。細節(jié)請看推文:《字節(jié)跳動凌晨宣布發(fā)半個月工資獎金,員工:以后我住公司了


          這波福利小編只能默默的感嘆一句:又是別人家的公司。不過今天我不想和大家探討這項福利,今天要和大家分享字節(jié)跳動的一項開源神器。

          前不久,字節(jié)跳動的技術(shù)團隊在Github上開源了一個視頻動畫特效SDK,可以通過制作Alpha通道分離的視頻素材,再在客戶端上通過OpenGL ES重新實現(xiàn)Alpha通道和RGB通道的混合,從而實現(xiàn)在端上播放帶透明通道的視頻。



          AlphaPlayer已經(jīng)在Github上標星270,累計分支 28 個(Github地址:https://github.com/bytedance/AlphaPlayer



          目前,抖音、抖音火山版、西瓜小視頻、今日頭條已經(jīng)接入。

          這套方案對設(shè)計師而言明顯降低了特效的制作成本,對于客戶端而言有著更可靠的性能和穩(wěn)定性,且相比cocos2d引擎有著更低的入門門檻和維護成本,為復雜動畫的實現(xiàn)提供了一種全新的方式,新的復雜動畫開發(fā)將會變得更加簡單高效。


          運行效果如下:




          項目結(jié)構(gòu)&基本原理

          AlphaPlayer主要有兩個核心部分,一個是MediaPlayer,負責視頻每一幀的解碼,支持接入方自行實現(xiàn);另一個是VideoRenderer,負責將解析出來的每一幀畫面進行alpha通道混合,再輸出到Surface上。View使用的是GLSurfaceView,性能相對TextureView更優(yōu),但層級限制在最頂層。

          AlphaPlayer內(nèi)部是通過Render渲染紋理畫面的,設(shè)計師導出的視頻資源會包含兩部分內(nèi)容——透明遮罩畫面和原視頻畫面兩部分,然后通過shader進行alpha值的混合,詳細可以看 frag.sh和vertex.sh。

          快速接入


          allprojects?{
          ????repositories?{
          ????????...
          ????????maven?{?url?'https://jitpack.io'?}
          ????}
          }

          dependencies?{
          ????implementation?'com.github.bytedance:AlphaPlayer:1.0.3'
          }


          添加依賴


          val?config?=?Configuration(context,?lifecycleOwner)
          //?支持GLSurfaceView&GLTextureView,?默認使用GLSurfaceView
          config.alphaVideoViewType?=?AlphaVideoViewType.GL_TEXTURE_VIEW
          //?也可以設(shè)置自行實現(xiàn)的Player,?demo中提供了基于ExoPlayer的實現(xiàn)
          val?playerController?=?PlayerController.get(config,?DefaultSystemPlayer())????
          playerController.setPlayerAction(object:?IPlayerAction?{
          ??override?fun?onVideoSizeChanged(videoWidth:?Int,?videoHeight:?Int,?scaleType:?ScaleType)?{
          ??}
          ??override?fun?startAction()?{
          ??}
          ??override?fun?endAction()?{
          ??}
          })
          playController.setMonitor(object:?IMonitor?{
          ??override?fun?monitor(result:?Boolean,?playType:?String,?what:?Int,?extra:?Int,?errorInfo:?String)?{
          ??}
          })?


          初始化PlayerController


          playerController.attachAlphaView(mVideoContainer)


          將PlayerController綁定到ViewGroup


          fun?startVideoAnimation()?{
          ??val?baseDir?=?"your?video?file?base?dir"
          ??val?portraitFileName?=?"portrait.mp4"
          ??val?portraitScaleType?=?2
          ??val?landscapeFileName?=?"landscape.mp4"
          ??val?landscapeScaleType?=?2
          ??val?dataSource?=?DataSource().setBaseDir(baseDir)
          ????.setPortraitPath(portraitFileName,?portraitScaleType)
          ????.setLandscapePath(landscapeFileName,?landscapeScaleType)
          ??if?(dataSource.isValid())?{
          ????playerController.start(dataSource)
          ??}
          }


          播放動畫視頻


          fun?releasePlayerController()?{
          ??playerController.detachAlphaView(mVideoContainer)
          ??playerController.release()
          }


          項目地址:https://github.com/bytedance/AlphaPlayer


          前線推出學習交流一定要備注:研究/工作方向+地點+學校/公司+昵稱(如Java+上海+上交+卡卡),根據(jù)格式備注,可更快被通過且邀請進群

          掃碼助手小姐姐微信,進群大廠內(nèi)推&大佬技術(shù)交流



          END


          好文點個在看吧!
          瀏覽 81
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  超碰在线图片 | 特级西西人体444WWw高清大胆 | 裸体美女黄网 | 18禁操逼网站 | 亚洲AV日韩AV永久无码网站 |