package Ġxyz . do ik ki . dk player . activity . api Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġxyz . do ik ki . dk player . R Ċ import Ġxyz . do ik ki . dk player . activity . Base Activity Ċ import Ġxyz . do ik ki . dk player . util . Intent Keys Ċ import Ġxyz . do ik ki . dk player . util . Utils Ċ import Ġxyz . do ik ki . dk player . widget . component . Debug Info View Ċ import Ġxyz . do ik ki . dk player . widget . component . Player Monitor Ċ import Ġxyz . do ik ki . vide oc ont roller . Standard Video Controller Ċ import Ġxyz . do ik ki . vide oc ont roller . component .* Ċ import Ġxyz . do ik ki . vide op layer . player . Abstract Player Ċ import Ġxyz . do ik ki . vide op layer . player . Video View Ċ import Ġxyz . do ik ki . vide op layer . player . Video View . On State ChangeListener Ċ import Ġxyz . do ik ki . vide op layer . player . Video View . Simple On State ChangeListener Ċ import Ġxyz . do ik ki . vide op layer . util . L Ċ Ċ /** Ċ Ġ* Ġæ Ĵ Ń æĶ¾ åĻ¨ æ¼Ķ ç¤º Ċ Ġ* ĠCreated Ġby ĠDo ik ki Ġon Ġ 2 0 1 7 / 4 / 7 . Ċ Ġ*/ Ċ class ĠPlayer Activity Ġ: ĠBase Activity < Video View < Abstract Player >>() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res Id () Ġ= ĠR . layout . activity _ player ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init View () ĊĠĠĠĠĠĠĠ Ġm Video View Ġ= ĠfindViewById ( R . id . player ) ĊĠĠĠĠĠĠĠ Ġintent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= ĠStandard Video Controller ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æł¹æį® å±ı å¹ķ æĸ¹åĲĳ èĩªåĬ¨ è¿Ľåħ¥ / éĢĢåĩº åħ¨ å±ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . set Enable Orientation ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprepare View Ġ= ĠPrepare View ( this ) Ġ// åĩĨå¤ĩ æĴŃæĶ¾ çķĮéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprepare View . set Click Start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthumb Ġ= Ġprepare View . findViewById < ImageView >( R . id . thumb ) Ġ// å°ģ éĿ¢ åĽ¾ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( TH UMB ). into ( thumb ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( prepare View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( Complete View ( this )) Ġ// èĩªåĬ¨ å®ĮæĪĲ æĴŃæĶ¾ çķĮéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( Error View ( this )) Ġ// éĶĻè¯¯ çķĮéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle View Ġ= ĠTitle View ( this ) Ġ// æłĩé¢ĺ æłı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( title View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æł¹æį® æĺ¯åĲ¦ ä¸º çĽ´ æĴŃ è®¾ç½® ä¸įåĲĮçļĦ åºķ éĥ¨ æİ§åĪ¶ æĿ¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Live Ġ= Ġit . getBoolean Extra ( Intent Keys . IS _ LI VE , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Live ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( Live Control View ( this )) Ġ// çĽ´ æĴŃ æİ§åĪ¶ æĿ¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv od Control View Ġ= ĠV od Control View ( this ) Ġ// çĤ¹ æĴŃ æİ§åĪ¶ æĿ¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĺ¯åĲ¦ æĺ¾ç¤º åºķ éĥ¨ è¿Ľ åº¦ æĿ¡ ãĢĤ é»ĺè®¤ æĺ¾ç¤º Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv od Control View . show Bottom Progress ( false ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( vod Control View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgesture Control View Ġ= ĠGest ure View ( this ) Ġ// æ»ĳ åĬ¨ æİ§åĪ¶ è§ĨåĽ¾ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( gesture Control View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æł¹æį® æĺ¯åĲ¦ ä¸º çĽ´ æĴŃ åĨ³å®ļ æĺ¯åĲ¦ éľĢè¦ģ æ»ĳ åĬ¨ è°ĥ èĬĤ è¿Ľ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . set Can Change Position (! is Live ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® æłĩé¢ĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġit . getString Extra ( Intent Keys . TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle View . setTitle ( title ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ³¨æĦı ï¼ļ ä»¥ä¸Ĭ ç»Ħä»¶ å¦Ĥæŀľä½ł æĥ³ åįķ çĭ¬ å®ļ åĪ¶ ï¼Į æĪĳ æİ¨èįĲ ä½ł æĬĬ æºĲçłģ å¤įåĪ¶ ä¸Ģ ä»½ åĩºæĿ¥ ï¼Į çĦ¶åĲİ æĶ¹ æĪĲ ä½ł æĥ³è¦ģ çļĦ æł· åŃĲ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĶ¹ å®Į ä¹ĭåĲİ åĨį éĢļè¿ĩ add Control Component æ·»åĬł ä¸Ĭ åİ» ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä½ł ä¹Łåı¯ä»¥ éĢļè¿ĩ add Control Component æ·»åĬł ä¸ĢäºĽ ä½ł èĩªå·±çļĦ ç»Ħä»¶ ï¼Į åħ·ä½ĵ å®ŀçİ° æĸ¹å¼ı åıĤèĢĥ çİ° æľī ç»Ħä»¶ çļĦ å®ŀçİ° ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¿Ļä¸ª ç»Ħä»¶ ä¸į ä¸Ģå®ļ æĺ¯ View ï¼Į è¯· åıĳ æĮ ¥ ä½łçļĦ æĥ³ è±¡ åĬĽ ðŁĺ ĥ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľä½ł ä¸įéľĢè¦ģ åįķ çĭ¬ éħįç½® åĲĦ ä¸ª ç»Ħä»¶ ï¼Į åı¯ä»¥ çĽ´æİ¥ è°ĥçĶ¨ æŃ¤ æĸ¹æ³ķ å¿«éĢŁ æ·»åĬł ä»¥ä¸Ĭ ç»Ħä»¶ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Default Control Component ( title , Ġis Live ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç« ĸ å±ı ä¹Ł å¼ĢåĲ¯ æīĭ åĬ¿ æĵįä½ľ ï¼Į é»ĺè®¤ åħ³éĹŃ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . set Enable In Normal ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ»ĳ åĬ¨ è°ĥ èĬĤ äº ® åº¦ ï¼Į éŁ³ éĩı ï¼Į è¿Ľ åº¦ ï¼Į é»ĺè®¤ å¼ĢåĲ¯ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . set Gesture Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// éĢĤ éħį åĪ ĺ æµ· å±ı ï¼Į é»ĺè®¤ å¼ĢåĲ¯ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . set Adapt Cut out ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĮ åĩ» æĴŃæĶ¾ æļĤ åģľ ï¼Į é»ĺè®¤ å¼ĢåĲ¯ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . set Double Tap Toggle Play Enabled ( false ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åľ¨ æİ§åĪ¶åĻ¨ ä¸Ĭ æĺ¾ç¤º è°ĥè¯ķ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( Debug Info View ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åľ¨ Log Cat æĺ¾ç¤º è°ĥè¯ķ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . add Control Component ( Player Monitor ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľä½ł ä¸į æĥ³è¦ģ UI ï¼Į ä¸įè¦ģ è®¾ç½® æİ§åĪ¶åĻ¨ åį³åı¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . set Video Controller ( controller ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġurl Ġ= Ġit . getString Extra ( Intent Keys . URL ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĤ¹åĩ» æĸĩä»¶ ç®¡çĲĨ åĻ¨ ä¸ŃçļĦ è§Ĩé¢ĳ ï¼Į éĢīæĭ© DK Player æīĵå¼Ģ ï¼Į å°Ĩ ä¼ļ èµ° ä»¥ä¸ĭ ä»£çłģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠIntent . ACTION _ VIEW Ġ== Ġit . action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ intent ä¸ŃçļĦ è§Ĩé¢ĳ åľ°åĿĢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠUtils . getFile From Content Uri ( this , Ġit . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġhash Map Of (" User - Agent " Ġto Ġ" Mozilla / 5 . 0 Ġ( Windows ĠNT Ġ 1 0 . 0 ; ĠWin 6 4 ; Ġx 6 4 ) ĠAppleWebKit / 5 3 7 . 3 6 Ġ( KHTML , Ġlike ĠGecko ) ĠChrome / 9 2 . 0 . 4 5 1 5 . 1 3 1 ĠSafari / 5 3 7 . 3 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . set Url ( url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¿ĿåŃĺ æĴŃæĶ¾ è¿Ľ åº¦ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . set Progress Manager ( Progress ManagerImpl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĴŃæĶ¾ çĬ¶æĢģ çĽĳåĲ¬ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . add On State ChangeListener ( m On State ChangeListener ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸´ æĹ¶ åĪĩæį¢ æĴŃæĶ¾ æł¸å¿ĥ ï¼Į å¦Ĥ éľĢ åħ¨å±Ģ è¯· éĢļè¿ĩ Video Config éħįç½® ï¼Į è¯¦ è§ģ My Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä½¿çĶ¨ I jk Player è§£ çłģ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Video View Ġas ĠVideo View < I jk Player >). set Player Factory ( I jk Player Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä½¿çĶ¨ Exo Player è§£ çłģ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Video View Ġas ĠVideo View < Exo MediaPlayer >). set Player Factory ( Exo MediaPlayer Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä½¿çĶ¨ MediaPlayer è§£ çłģ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Video View Ġas ĠVideo View < Android MediaPlayer >). set Player Factory ( Android MediaPlayer Factory . create ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® éĿĻ éŁ³ æĴŃæĶ¾ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . set Mute ( true ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä»İ è®¾ç½® çļĦ position å¼Ģå§ĭ æĴŃæĶ¾ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . skip Position When Play ( 1 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// æĴŃæĶ¾ åħ¶ä»ĸ è§Ĩé¢ĳ ĊĠĠĠĠĠĠĠ Ġval Ġet Other Video Ġ= ĠfindViewById < EditText >( R . id . et _ other _ video ) ĊĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . btn _ start _ play ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . set Url ( et Other Video . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm On State ChangeListener : ĠOn State ChangeListener Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠSimple On State ChangeListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Player StateChanged ( player State : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( player State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . PLAYER _ NORMAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . PLAYER _ FULL _ SCREEN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Play StateChanged ( play State : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( play State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ IDLE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ PRE PAR ING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ PRE PARE D Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ PLAY ING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éľĢ åľ¨ æŃ¤ æĹ¶ èİ·åıĸ è§Ĩé¢ĳ å®½ é«ĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvideo Size Ġ= Ġm Video View !!. video Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL . d (" è§Ĩé¢ĳ å®½ ï¼ļ" Ġ+ Ġvideo Size [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL . d (" è§Ĩé¢ĳ é«ĺ ï¼ļ" Ġ+ Ġvideo Size [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ PA USED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ BUFFER ING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ BUFFER ED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ PLAY BACK _ COMPLETED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVideo View . STATE _ ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠ Ġfun Ġon Button Click ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . scale _ default Ġ-> Ġm Video View !!. set Screen Scale Type ( Video View . SCREEN _ SCALE _ DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . scale _ 1 6 9 Ġ-> Ġm Video View !!. set Screen Scale Type ( Video View . SCREEN _ SCALE _ 1 6 _ 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . scale _ 4 3 Ġ-> Ġm Video View !!. set Screen Scale Type ( Video View . SCREEN _ SCALE _ 4 _ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . scale _ original Ġ-> Ġm Video View !!. set Screen Scale Type ( Video View . SCREEN _ SCALE _ ORIGIN AL ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . scale _ match _ parent Ġ-> Ġm Video View !!. set Screen Scale Type ( Video View . SCREEN _ SCALE _ MATCH _ PARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . scale _ center _ crop Ġ-> Ġm Video View !!. set Screen Scale Type ( Video View . SCREEN _ SCALE _ CENTER _ C ROP ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . speed _ 0 _ 5 Ġ-> Ġm Video View !!. speed Ġ= Ġ 0 . 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . speed _ 0 _ 7 5 Ġ-> Ġm Video View !!. speed Ġ= Ġ 0 . 7 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . speed _ 1 _ 0 Ġ-> Ġm Video View !!. speed Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . speed _ 1 _ 5 Ġ-> Ġm Video View !!. speed Ġ= Ġ 1 . 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . speed _ 2 _ 0 Ġ-> Ġm Video View !!. speed Ġ= Ġ 2 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . screen _ shot Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠimageView Ġ= ĠfindViewById < ImageView >( R . id . iv _ screen _ shot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= Ġm Video View !!. do Screen Shot () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . setImage Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . mirror _ rotate Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View !!. set Mirror Rotation ( i Ġ% Ġ 2 Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ mute Ġ-> Ġm Video View !!. is Mute Ġ= Ġ! m Video View !!. is Mute ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ è§Ĩé¢ĳ è¿ĺ åľ¨ åĩĨå¤ĩ å°± Ġactivity Ġ å°± è¿Ľåħ¥ äºĨ åĲİåı° ï¼Į å»ºè®® çĽ´æİ¥ å°Ĩ ĠVideo View Ġrelease ĊĠĠĠĠĠĠĠ Ġ// éĺ² æŃ¢ è¿Ľåħ¥ åĲİåı° åĲİ è§Ĩé¢ĳ è¿ĺ åľ¨ æĴŃæĶ¾ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Video View !!. current Play State Ġ== ĠVideo View . STATE _ PRE PAR ING ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Video View !!. release () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTH UMB Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// cms - bucket . nos dn . 1 2 7 . net / eb 4 1 1 c 2 8 1 0 f 0 4 ffa 8 aa afc 4 2 0 5 2 b 2 3 3 8 2 0 1 8 0 4 1 8 0 9 5 4 1 6 . jpeg " ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext , Ġurl : ĠString , Ġtitle : ĠString , Ġis Live : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠPlayer Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent Keys . URL , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent Keys . IS _ LI VE , Ġis Live ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent Keys . TITLE , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }