package Ġcom . ss . ug c . android . alpha _ player . player Ċ Ċ import Ġandroid . media . Media Metadata Retriever Ċ import Ġandroid . media . MediaPlayer Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . Surface Ċ import Ġcom . ss . ug c . android . alpha _ player . model . Video Info Ċ import Ġjava . lang . Exception Ċ Ċ /** Ċ Ġ* Ġcreated Ġby Ġd eng zh uo y ao Ġon Ġ 2 0 2 0 / 0 7 / 0 7 Ċ Ġ*/ Ċ class ĠDefault System Player Ġ: ĠAbs Player () Ġ{ ĊĊĠĠĠ Ġvar Ġmedia Player Ġ: ĠMedia Player ? Ġ= Ġnull ĊĠĠĠ Ġval Ġretrie ver : ĠMedia Metadata Retriever Ġ= ĠMedia Metadata Retriever () ĊĠĠĠ Ġlateinit Ġvar Ġdata Path Ġ: ĠString ĊĊĊĠĠĠ Ġoverride Ġfun Ġinit MediaPlayer () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player Ġ= ĠMedia Player () ĊĊĠĠĠĠĠĠĠ Ġmedia Player !!. setOn Completion Listener ( MediaPlayer . On Completion Listener Ġ{ Ġmedia Player Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion Listener . on Completion () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġmedia Player !!. setOn Prepared Listener ( MediaPlayer . On Prepared Listener Ġ{ Ġmedia Player Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprepared Listener . on Prepared () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġmedia Player !!. setOn Error Listener ( MediaPlayer . OnError Listener Ġ{ Ġmp , Ġwhat , Ġextra Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Listener . onError ( what , Ġextra , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġmedia Player !!. setOn Info Listener Ġ{ Ġmp , Ġwhat , Ġextra Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( what Ġ== ĠMedia Player . MEDIA _ INFO _ VIDEO _ RENDER ING _ START ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Frame Listener . on First Frame () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Surface ( surface : ĠSurface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. set Surface ( surface ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset DataSource ( data Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . data Path Ġ= Ġdata Path ĊĠĠĠĠĠĠĠ Ġmedia Player !!. set DataSource ( data Path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprepare Async () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. prepare Async () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpause () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. reset () ĊĠĠĠĠĠĠĠ Ġthis . data Path Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrelease () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. release () ĊĠĠĠĠĠĠĠ Ġthis . data Path Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Loop ing ( loop ing : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. is Loop ing Ġ= Ġlooping ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Screen On While Playing ( on While Playing : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Player !!. set Screen On While Playing ( on While Playing ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Video Info (): ĠVideo Info Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( data Path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" data Path Ġis Ġnull , Ġplease Ġset Ġset DataSource Ġfirst ly !") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġretrie ver . set DataSource ( data Path ) ĊĠĠĠĠĠĠĠ Ġval Ġwidth Str Ġ= Ġretrie ver . extract Metadata ( Media Metadata Retriever . METADATA _ KEY _ VIDEO _ WIDTH ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Str Ġ= Ġretrie ver . extract Metadata ( Media Metadata Retriever . METADATA _ KEY _ VIDEO _ HEIGHT ) ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( width Str ) Ġ|| ĠText Utils . isEmpty ( height Str )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Default System Player Ġget Ġmetadata Ġfailure !") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġvideo Width Ġ= Ġretrie ver . extract Metadata ( Media Metadata Retriever . METADATA _ KEY _ VIDEO _ WIDTH ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġvideo Height Ġ= Ġretrie ver . extract Metadata ( Media Metadata Retriever . METADATA _ KEY _ VIDEO _ HEIGHT ). toInt () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠVideo Info ( video Width , Ġvideo Height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Player Type (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Default System Player " ĊĠĠĠ Ġ} Ċ }