Store audio/video even when suspended.
This is important for audio. _audio.put() must be called with
sequential data, so if you're going to discard audio (as was
happening when _suspended) you need to clear _audio before
put()ting any more.
This happens with seek; when _pending_seek_position is set
_audio is cleared and then nothing more is added until the
seek is done.
_suspended may be set and then reset with no change having
happened (type _CANCELLED) so I think you have to keep storing
data in this case. It will be discarded when the seek comes
around after a _DONE change.