package Ġee . ioc . phon . android . speak . demo Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġee . ioc . phon . android . speak . Log Ċ import Ġee . ioc . phon . android . speak . R Ċ import Ġee . ioc . phon . android . speak . activity . Details Activity Ċ import Ġee . ioc . phon . android . speak . provider . FileContent Provider Ċ import Ġee . ioc . phon . android . speech utils . Audio Recorder Ċ import Ġee . ioc . phon . android . speech utils . Encoded Audio Recorder Ċ import Ġee . ioc . phon . android . speech utils . utils . Audio Utils Ċ import Ġjava . io . IOException Ċ Ċ class ĠEncoder Demo Activity Ġ: ĠActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Recorder : ĠAudio Recorder ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Stop Handler Ġ= ĠHandler () ĊĠĠĠ Ġprivate Ġvar Ġm Stop Task : ĠRunnable ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm Recording : ĠByteArray ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm B Test 1 : ĠButton ? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . encoder _ demo ) ĊĊĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= ĠfindViewById < EditText >( R . id . et Test 0 ) ĊĠĠĠĠĠĠĠ Ġedit Text . setOn Editor ActionListener ( TextView . On Editor ActionListener Ġ{ Ġv , Ġaction Id , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ SEARCH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( v . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Editor ActionListener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ Ġm B Test 1 Ġ= ĠfindViewById ( R . id . button Test 1 ) Ġas ĠButton ĊĠĠĠĠĠĠĠ Ġ( findViewById ( R . id . button Test 1 ) Ġas ĠButton ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm B Test 1 ?. setText ( R . string . button I me Stop By Pause ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecord Until Pause ( Encoded Audio Recorder ( 1 6 0 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġtoast ( message : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġmessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġrecord Until Pause ( audio Recorder : ĠAudio Recorder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Recorder Ġ= Ġaudio Recorder ĊĠĠĠĠĠĠĠ Ġif Ġ( m Recorder ?. state Ġ== ĠAudio Recorder . State . ERROR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException (" ERROR ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Recorder ?. state Ġ!= ĠAudio Recorder . State . READY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException (" not ĠREAD Y ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Recorder ?. start () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Recorder ?. state Ġ!= ĠAudio Recorder . State . RECORD ING ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException (" not ĠREC ORD ING ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġwe Ġshould Ġstop Ġrecording ĊĠĠĠĠĠĠĠ Ġm Stop Task Ġ= Ġobject Ġ: ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Recorder Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Recorder !!. is Pa using ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon EndOf Speech () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Stop Handler . post Delayed ( this , Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Stop Handler . post Delayed ( m Stop Task , Ġ 5 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġon EndOf Speech () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Recorder Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Recording Ġ= Ġm Recorder !!. consume Recording () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstop Recording 0 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstop Recording 0 () Ġ{ ĊĠĠĠĠĠĠĠ Ġrelease Recorder () ĊĠĠĠĠĠĠĠ Ġm Stop Handler . remove Callbacks ( m Stop Task ) ĊĠĠĠĠĠĠĠ Ġval Ġrecording As W av Ġ= ĠAudio Utils . get Recording As W av ( m Recording , Ġ 1 6 0 0 0 , Ġ 2 . to Short (), Ġ 1 . to Short ()) ĊĠĠĠĠĠĠĠ Ġm B Test 1 ?. setText ( R . string . button I me S peak ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri W av Ġ= Ġget Audio Uri (" audio . wav ", Ġrecording As W av ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠDetails Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri W av , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( e . message , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrelease Recorder () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Recorder Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Recorder !!. release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Recorder Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġget Audio Uri ( filename : ĠString , Ġrecording : ĠByteArray ): ĠUri Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf os Ġ= Ġopen File Output ( filename , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġf os . write ( recording ) ĊĠĠĠĠĠĠĠ Ġf os . close () ĊĠĠĠĠĠĠĠ Ġreturn ĠUri . parse (" content ://" Ġ+ ĠFile Content Provider . AUTH ORITY Ġ+ Ġ"/" Ġ+ Ġfilename ) ĊĠĠĠ Ġ} Ċ }