我一直想知道操作系统如何在其他程序运行时不间断地连续播放音频。
有时当运行密集程序时,我会注意到音乐停止一秒钟,有时可能是几秒钟。
但一般来说,我可以一边玩密集的游戏一边听音乐。操作系统如何设法在(几乎)没有中断的情况下播放它?
我一直想知道操作系统如何在其他程序运行时不间断地连续播放音频。
有时当运行密集程序时,我会注意到音乐停止一秒钟,有时可能是几秒钟。
但一般来说,我可以一边玩密集的游戏一边听音乐。操作系统如何设法在(几乎)没有中断的情况下播放它?
它为音频线程提供更高的优先级。
Android SDK 表示普通应用程序无法更改为此(更高)优先级:http: //developer.android.com/reference/android/os/Process.html#THREAD_PRIORITY_AUDIO
音频由硬件播放。包括操作系统在内的软件负责以半固定的时间间隔将称为“缓冲区”的音频块传输到硬件。只要硬件在最后一个块用完之前接收到下一个块,播放就是连续的。
我的演讲幻灯片上有一张这样的图表:
http://blog.bjornroche.com/2011/11/slides-from-fundamentals-of-audio.html