是否可以使 write();不使用线程的非阻塞函数?
short buffer[BUFFER_LEN];
int readcount;
while ((readcount = sounds[index].read(buffer, BUFFER_LEN)))
write(audio_device, buffer, readcount * sizeof(short));
声音播放,但它会阻塞程序直到播放结束。
最佳答案
使用 fcntl
为文件设置 O_NONBLOCK
标志可能会起作用,但您需要准备好处理部分写入和 EWOULDBLOCK
错误。
关于c++ - 如何对设备执行非阻塞写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515754/