I haven't written sound code, but it might be that the sound driver isn't buffered at the kernel level, causing your process to block while it waits for the driver to read. Do you have access to a file descriptor? If so, set it to non-blocking and see what happens. Otherwise, you might just need to use a separate thread for the sound or regulate the bit-rate manually with nanosleep. You might also ps your process and see what the status is when it's paused. That should tell you if it's blocked for I/O.
Kevin Barry
|