package Ġcom . feat z ima . k ome dia example Ċ Ċ import Ġandroid . media . Media Codec Info Ċ import Ġandroid . media . Media Format Ċ import Ġandroidx . test . Instrumentation Registry Ċ import Ġandroidx . test . runner . Android JUnit 4 Ċ import Ġcom . feat z ima . k ome dia . dsl . pipeline Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . io . File ĊĊ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠSimple Pipeline Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuse AppContext () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Context Ġ= ĠInstrument ation Registry . getTarget Context () ĊĠĠĠĠĠĠĠ Ġval Ġsample File Ġ= ĠFile ( app Context . cacheDir , Ġ" input . mp 3 ") ĊĠĠĠĠĠĠĠ Ġapp Context . assets . open (" B ee th ov en _ 1 2 _ Variation . mp 3 "). use Ġ{ ĠinputStream Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample File . output Stream (). use Ġ{ ĠoutputStream Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream . copy To ( output Stream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult File Ġ= ĠFile ( app Context . cacheDir , Ġ" result . aac ") ĊĠĠĠĠĠĠĠ Ġif Ġ( result File . exists ()) Ġresult File . delete () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconverter Pipeline Ġ= Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextract Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Ġ{ Ġpath Ġ= Ġsample File . absolute Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecode Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencode Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Format Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Ġ{ ĠMedia Format . KEY _ BIT _ RATE Ġto Ġ 1 2 8 0 0 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Ġ{ ĠMedia Format . KEY _ MIME Ġto ĠMedia Format . MIME TYPE _ AUDIO _ AAC Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Ġ{ ĠMedia Format . KEY _ AAC _ PROFILE Ġto ĠMedia Codec Info . Codec Profile Level . AAC Object LC Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmux Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputFile Ġ= Ġresult File ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Pipeline . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ