i'm working on service-like application using android's alarmmanager. app connects server , calls remote procedure. if value returned true, plays sound:
mediaplayer mediaplayer = new mediaplayer(); mediaplayer.setaudiostreamtype(audiomanager.stream_ring); try { mediaplayer.setdatasource(getapplicationcontext(), uri.parse("file:///system/media/audio/ringtones/rolling_tone.ogg")); } ... mediaplayer.start(); this works , when application started manually. when phone rebooted (i've implemented broadcastreceiver), sound played second gets interrupted immediately.
it sounds play cycle being cut off something. need stop , re-start application have working correctly again.
any clues on cause be?
you use mediaplayer's setscreenonwhileplaying() ensure application doesn't go sleep while audio plays in background.
another possible solution use powermanager keep device awake wakelock:
see http://developer.android.com/reference/android/os/powermanager.html
powermanager pm = (powermanager) getsystemservice(context.power_service); powermanager.wakelock wl = pm.newwakelock(powermanager.screen_dim_wake_lock, "my tag"); wl.acquire(); ... wait until sound has finished playing (with listener) wl.release();
Comments
Post a Comment