package Ġru . v iny ar sky . android audio example . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . media . session . Media Controller Compat Ċ import Ġandroid . support . v 4 . media . session . Playback State Compat Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġru . v iny ar sky . android audio example . R Ċ import Ġru . v iny ar sky . android audio example . service . Fade Speed Ċ import Ġru . v iny ar sky . android audio example . service . Multi Track Repository Impl Ċ import Ġru . v iny ar sky . android audio example . service . Player Ċ import Ġru . v iny ar sky . android audio example . service . Player Params Ċ import Ġru . v iny ar sky . android audio example . service . start And Bind Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġplayer Ġ= ĠPlayer ( ĊĠĠĠĠĠĠĠ Ġcallback Ġ= Ġobject Ġ: ĠMedia Controller Compat . Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Playback StateChanged ( state : ĠPlay back State Compat ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaying Ġ= Ġstate ?. state Ġ== ĠPlay back State Compat . STATE _ PLAY ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay Button . isEnabled Ġ= Ġ! playing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpause Button . isEnabled Ġ= Ġplaying ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Button . isEnabled Ġ= Ġplaying ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġplay Button . setOnClickListener Ġ{ Ġplayer . transport Controls ?. play () Ġ} ĊĠĠĠĠĠĠĠ Ġpause Button . setOnClickListener Ġ{ Ġplayer . transport Controls ?. pause () Ġ} ĊĠĠĠĠĠĠĠ Ġstop Button . setOnClickListener Ġ{ Ġplayer . transport Controls ?. stop () Ġ} ĊĠĠĠĠĠĠĠ Ġskip To Next Button . setOnClickListener Ġ{ Ġplayer . transport Controls ?. skip To Next () Ġ} ĊĠĠĠĠĠĠĠ Ġskip To Previous Button . setOnClickListener Ġ{ Ġplayer . transport Controls ?. skip To Previous () Ġ} ĊĊĠĠĠĠĠĠĠ Ġplayer . start And Bind ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Params Ġ= ĠPlayer Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository Ġ= ĠMulti Track Repository Impl (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay On Start Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfadeIn Speed Ġ= ĠF ade Speed ( on Each Ġ= Ġ 0 . 0 5 f , Ġdelay Ms Ġ= Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Msg Ġ= Ġ:: println ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġplayer . unbind ( this ) ĊĠĠĠ Ġ} Ċ } Ċ