ALSA在回调执行期间重新进入回调

时间:2012-03-21 11:04:44

标签: c++ linux audio alsa

我的应用程序使用ALSA和回调功能来播放选定的声音。有时它只是挂起。我几乎没有调试它2天,最后发现ALSA的回调函数在执行时已被调用。我用这个抓住了这个:

void MyALSACallback()
{
    std::cout << "1"; std::cout.flush();
    // ... snd_pcm_writei() call ... //
    // ... no any returns ... //
    std::cout << "2"; std::cout.flush();
    return;
}

当我打印序列“11”时应用程序挂起。当应用程序处于活动状态并且正在播放声音时,“121212 ...”在控制台上。

怎么可能发生?

0 个答案:

没有答案