package Ġcom . so y wiz . kor au . impl . j na Ċ Ċ import Ġcom . so y wiz . k lock .* Ċ import Ġcom . so y wiz . kor au . format .* Ċ import Ġcom . so y wiz . kor au . format . mp 3 .* Ċ import Ġcom . so y wiz . kor au . sound .* Ċ import Ġcom . so y wiz . kor io . file .* Ċ import Ġcom . so y wiz . kor io . file . std .* Ċ import Ġcom . so y wiz . kor io . stream .* Ċ import Ġkotlinx . coroutines .* Ċ Ċ fun ĠByteArray . as Memory V fs File ( name : ĠString Ġ= Ġ" temp . bin "): ĠV fs File Ġ= ĠMemory V fs ( map Of ( name Ġto Ġopen Async ())) [ name ] Ċ suspend Ġfun ĠV fs File . cached To Memory (): ĠV fs File Ġ= Ġthis . read All (). as Memory V fs File ( this . fullName ) Ċ Ċ object ĠJ na Sound Provider Sample Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" monkey _ dr ama . mp 3 "]. read Native Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= ĠSound Channel Group ( volume Ġ= Ġ 0 . 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( resources V fs [" monkey _ dr ama . mp 3 "]. cached To Memory (). read Sound Info ( props Ġ= ĠAudio De coding Props ( exact Tim ings Ġ= Ġfalse )) ?. de coding Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( resources V fs [" monkey _ dr ama . mp 3 "]. cached To Memory (). read Sound Info ( props Ġ= ĠAudio De coding Props ( exact Tim ings Ġ= Ġtrue )) ?. de coding Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" mp 3 1 _ joint _ stere o _ v br . mp 3 "]. read Native Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" mp 3 1 _ joint _ stere o _ v br . mp 3 "]. read Native Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstream Ġ= Ġresources V fs [" monkey _ dr ama . mp 3 "]. read Audio Stream ( MP 3 Decoder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( resources V fs [" monkey _ dr ama . mp 3 "]. read All (). as Memory V fs File (" temp . mp 3 "). read Sound Info ( MP 3 Decoder ) !!. duration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" mp 3 1 _ joint _ stere o _ v br . mp 3 "]. read Native Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" click . wav "]. read Native Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" click . wav "]. read Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġresources V fs [" click . wav "]. read Sound () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" click . mp 3 "]. read Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" monkey _ dr ama . mp 3 "]. read Native Sound () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġdata Ġ= Ġresources V fs [" mp 3 1 _ joint _ stere o _ v br . mp 3 "]. read Native Sound () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// println ( data . length ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġresult Ġ= Ġdata . play Fore ver (). attach To ( group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( data . length ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġresult Ġ= Ġdata . play ( 2 . playback Times , ĠstartTime Ġ= Ġ 5 0 . 2 . seconds ). attach To ( group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdata . play ( 1 0 . playback Times , ĠstartTime Ġ= Ġ 0 . seconds ). attach To ( group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// result . current Ġ= Ġ 5 0 . seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( result . total ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// group . volume Ġ= Ġ 0 . 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// group . pitch Ġ= Ġ 1 . 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . volume Ġ= Ġ 0 . 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . pitch Ġ= Ġ 1 . 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( n Ġin Ġ- 1 0 Ġ.. Ġ+ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . p anning Ġ= Ġn . toDouble () Ġ/ Ġ 1 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// group . p anning Ġ= Ġ- 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// result . p anning Ġ= Ġn . toDouble () Ġ/ Ġ 1 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( group . p anning ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcom . so y wiz . kor io . async . delay ( 0 . 1 . seconds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcom . so y wiz . kor io . async . delay ( 2 . seconds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Waiting ...") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Stop ...") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// com . so y wiz . kor io . async . delay ( 1 . seconds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . stop () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ