导航

What does it mean “W/AudioFlinger( 34): write blocked for 70 msecs, 2236 delayed writes, thread ”?


W/AudioFlinger( 34): write blocked for 84 msecs, 2153 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 69 msecs, 2182 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 76 msecs, 2205 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 70 msecs, 2236 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 73 msecs, 2269 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 75 msecs, 2300 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 70 msecs, 2325 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 69 msecs, 2356 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 75 msecs, 2386 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 70 msecs, 2418 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 80 msecs, 2445 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 71 msecs, 2473 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 90 msecs, 2498 delayed writes, thread 0xc658 W/AudioFlinger( 34): write blocked for 72 msecs, 2528 delayed writes, thread 0xc658


It might or it might not be something that you can ignore. The process that is outputting that message is indeed not your app but that doesn't mean the message is not caused by your app. Your application is communicating via Binder with AudioFlinger which resides in the mediaserver process so that is why the PID of the warning message is not the PID of your app. However the message might be because the AudioFlinger is requested to playback data faster than the audio data is actually supposed to be played back (based on samplerate, number of channels and the size of the buffer). If the app is using the AudioTrack class to write raw data (and that is done from multiple threads?) then probably the data is sent faster than it can be played back, so AudioFligner is "overloaded".