package Ġcom . sm 9 i . aliyun _ video Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . util . Log Ċ import Ġcom . aliyun . s video . sdk . external . struct . common . Video Quality Ċ import Ġcom . aliyun . s video . sdk . external . struct . encoder . Video Code cs Ċ import Ġcom . sm 9 i . aliyun _ video . aliyun . activity . Ali vc Mix Media Activity Ċ import Ġcom . sm 9 i . aliyun _ video . aliyun . activity . Ali vc S video Record Activity Ċ import Ġcom . sm 9 i . aliyun _ video . aliyun . bean . Ali vc Record Input Param Ċ import Ġio . flutter . embedding . engine . plugins . Flutter Plugin Ċ import Ġio . flutter . plugin . common . Plugin Registry Ċ import Ġio . flutter . plugin . common . Binary Messenger Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ Ċ class ĠMethod Call Handler Impl ( private Ġvar Ġactivity : ĠActivity , Ġmess enger : ĠBinary Messenger ) Ġ: ĊĠĠĠĠĠĠĠ ĠMethod Channel . MethodCall Handler , ĠPlugin Registry . Activity Result Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġmethod Channel : ĠMethod Channel Ġ= ĠMethod Channel ( messenger , Ġ" aliyun _ video ") ĊĠĠĠ Ġprivate Ġval Ġresult Map : ĠHashMap < String , ĠMethod Channel . Result > Ġ= ĠHashMap () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġmethod Channel . set MethodCall Handler ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Listening () Ġ{ ĊĠĠĠĠĠĠĠ Ġmethod Channel . set MethodCall Handler ( null ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon MethodCall ( call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" start Video " Ġ-> Ġstart Video ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" start C oo peration Video " Ġ-> Ġstart C oo peration Video ( call , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresult . not Implemented () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġstart C oo peration Video ( call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ// Ali vc S video Mix Record Activity . start Mix Record () Ċ // ĠĠĠĠĠĠĠ Ġval Ġrecord Input Param Ġ= ĠAli vc Record Input Param . Builder () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Resolution Mode ( Little Video Param Config . Recorder . RESOL UTION _ MODE ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ratio Mode ( Little Video Param Config . Recorder . RATIO _ MODE ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Duration ( Little Video Param Config . Recorder . MAX _ DURATION ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Min Duration ( Little Video Param Config . Recorder . MIN _ DURATION ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Video Quality ( Little Video Param Config . Recorder . VIDEO _ QUAL ITY ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set G op ( Little Video Param Config . Recorder . G OP ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Video Codec ( Little Video Param Config . Recorder . VIDEO _ CODEC ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġparam Ġ= ĠAli vc Record Input Param () ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ RESOL UTION _ MODE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . resolution Mode Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ MAX _ DURATION )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . max Duration Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ MIN _ DURATION )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . min Duration Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ RATION _ MODE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . ratio Mode Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ G OP )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . gop Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ FRAME )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . frame Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < String >( Ali vc Record Input Param . INT ENT _ KEY _ QUAL ITY )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . video Quality Ġ= ĠVideo Quality . valueOf ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < String >( Ali vc Record Input Param . INT ENT _ KEY _ CODEC )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . video Codec Ġ= ĠVideo Code cs . valueOf ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAli vc Mix Media Activity . start Record ( activity , Ġparam ) ĊĠĠĠĠĠĠĠ Ġresult Map [ Ali vc Mix Media Activity . REQUEST _ CODE . toString ()] Ġ= Ġresult ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġstart Video ( call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparam Ġ= ĠAli vc Record Input Param () ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ RESOL UTION _ MODE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . resolution Mode Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ MAX _ DURATION )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" ww ww ww ", Ġ"$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . max Duration Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ MIN _ DURATION )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . min Duration Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ RATION _ MODE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . ratio Mode Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ G OP )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . gop Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ FRAME )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . frame Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < String >( Ali vc Record Input Param . INT ENT _ KEY _ QUAL ITY )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . video Quality Ġ= ĠVideo Quality . valueOf ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < String >( Ali vc Record Input Param . INT ENT _ KEY _ CODEC )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . video Codec Ġ= ĠVideo Code cs . valueOf ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . argument < Int >( Ali vc Record Input Param . INT ENT _ KEY _ CREATE _ TYPE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . create Type Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" create Type Ġ Ġ$ it ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAli vc S video Record Activity . start Record ( activity , Ġparam ) ĊĠĠĠĠĠĠĠ Ġresult Map [ Ali vc S video Record Activity . REQUEST _ CODE . toString ()] Ġ= Ġresult ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( req Code : ĠInt , ĠresultCode : ĠInt , Ġintent : ĠIntent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( req Code Ġ== ĠAli vc S video Record Activity . REQUEST _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// filePath ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ 0 Ġ Ġæĺ¯ video ĠĠ 1 Ġæĺ¯ photo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ file T ye Ġ= - 1 Ġ åĪĻ å¤±è´¥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" fileType "] Ġ= Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Map [ Ali vc S video Record Activity . REQUEST _ CODE . toString ()] ?. success ( map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra (" param ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" filePath "] Ġ= Ġintent . getString Extra (" param ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAli vc S video Record Activity . RESPONSE _ VIDEO _ CODE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" fileType "] Ġ= Ġ" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAli vc S video Record Activity . RESPONSE _ PH OTO _ CODE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" fileType "] Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! map . containsKey (" filePath ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" fileType "] Ġ= Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Map [ Ali vc S video Record Activity . REQUEST _ CODE . toString ()] ?. success ( map ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( req Code Ġ== ĠAli vc Mix Media Activity . REQUEST _ CODE Ġ&& ĠresultCode Ġ== ĠAli vc Mix Media Activity . RESPONSE _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" fileType "] Ġ= Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Map [ Ali vc S video Record Activity . REQUEST _ CODE . toString ()] ?. success ( map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra (" param ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" filePath "] Ġ= Ġintent . getString Extra (" param ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" fileType "] Ġ= Ġ" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" intent Ġhas Extra ", Ġintent . getString Extra (" param ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! map . containsKey (" filePath ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" fileType "] Ġ= Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Map [ Ali vc Mix Media Activity . REQUEST _ CODE . toString ()] ?. success ( map ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĊĠĠĠ Ġ} Ċ }