Friday, May 20, 2011

[android-developers] MediaPlayer blocked(AudioFlinger write blocked) while playing animation

Hi all,

I have a thread to play audio and animation together. It's a frame
animation. The drawable resources are in sdcard. When I play the
animation, I use a handler to send message to refresh images one by
one.
Here's my code:
final Handler handle = new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
BitmapDrawable bmpDraw = new BitmapDrawable("sdcard/
anim/"+msg.obj);
imageView.setBackgroundDrawable(bmpDraw);
imageView.invalidate();
if(msg.what < fileNames.length-1){
sendMessageDelayed(obtainMessage((msg.what+1),
fileNames[msg.what+1]),50);
}
}
};
handler.sendMessage(handler.obtainMessage(0,fileNames[0]);
MediaPlayer mp = new MediaPlayer();
...//play audio

The animation performs fine, but the audio will be stopped when it
begins to play for seconds. From logcat I see AudioFlinger: write
blocked for 89 msec...

I don't use AnimationDrawable because there are many images in sdcard,
when I use addFrame(AnimationDrawable.createFromPath(...)) I got an
OutOfMemory Exception.

Am I doing the right thing? Can anyone help me?

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate