Android audio delay -
i have problem when playing mp3 in android, delay or lag, ex:
if have reproduce following: "hello, how you?", plays "how you?" or says low "hello".
it happens in viewsonic v220 22" tablet, in of other devices, works fine, in 1 seems fail.
its weird, becouse other apps(like youtube or media player) works fine.
this code, maybe doing wrong:
public class soundmanager implements mediaplayer.onpreparedlistener, mediaplayer.oncompletionlistener { private parent mparent; private mediaplayer mediaplayer; string[] mp3_array; int counter = 0; public soundmanager(parent parent) { mparent = parent; } public void playsound(string[] url) throws illegalargumentexception, illegalstateexception, ioexception { mp3_array = url; mediaplayer = new mediaplayer(); mediaplayer.setaudiostreamtype(audiomanager.stream_music); if (mediaplayer.isplaying()) { mediaplayer.reset(); } mediaplayer.setdatasource(url[0]); mediaplayer.setoncompletionlistener(this); mediaplayer.setonpreparedlistener(this); mediaplayer.prepareasync(); } public void stopmediaplayer() { if (mediaplayer != null) { mediaplayer.release(); mediaplayer = null; mp3_array = null; counter = 0; } } @override public void oncompletion(mediaplayer mp) { try { integer c = counter; if (mp3_array != null && counter + 1 < mp3_array.length) { mp.reset(); mp.setoncompletionlistener(this); mp.setonpreparedlistener(this); counter += 1; mp.setdatasource(mp3_array[counter]); mediaplayer.prepareasync(); } else { if (mparent != null) mparent.invokejs("playsoundended()"); mp.release(); mp = null; mp3_array = null; counter = 0; } } catch (illegalargumentexception e) { // todo auto-generated catch block e.printstacktrace(); } catch (securityexception e) { // todo auto-generated catch block e.printstacktrace(); } catch (illegalstateexception e) { // todo auto-generated catch block e.printstacktrace(); } catch (ioexception e) { // todo auto-generated catch block e.printstacktrace(); } } @override public void onprepared(mediaplayer mp) { if (mparent != null) mparent.invokejs("playsoundstarted()"); mp.start(); }
}
Comments
Post a Comment