package Ġcom . s aint mar ina . alph at r aining Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . media . MediaPlayer Ċ import Ġkotlin . math . pow Ċ Ċ class ĠAudio ( var Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġvar Ġplayer : MediaPlayer ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġplay () Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer Ġ= ĠMedia Player . create ( context , ĠR . raw . sound ) ĊĠĠĠĠĠĠĠ Ġplayer !!. is Loop ing Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġplayer !!. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer ?. stop () ĊĠĠĠĠĠĠĠ Ġplayer ?. release () ĊĠĠĠĠĠĠĠ Ġplayer Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Volume ( volume _: ĠFloat ){ ĊĠĠĠĠĠĠĠ Ġvar Ġvolume Ġ= Ġvolume _ ĊĠĠĠĠĠĠĠ Ġval Ġbaseline Ġ= Ġ 0 . 1 5 f ; ĊĠĠĠĠĠĠĠ Ġvolume Ġ-= Ġbaseline ĊĠĠĠĠĠĠĠ Ġif Ġ( volume Ġ< Ġ 0 . 0 1 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvolume Ġ= Ġ 0 . 0 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvolume Ġ*= Ġ 1 /( 1 - baseline ) ĊĠĠĠĠĠĠĠ Ġvolume Ġ= Ġ 2 * volume . pow ( 2 ) ĊĊĠĠĠĠĠĠĠ Ġplayer ?. set Volume ( volume , Ġvolume ) ĊĠĠĠ Ġ} Ċ }