- 论坛徽章:
- 0
|
原来问题在这里.但是却不知道怎么解决.好像是系统的原因哦.
if (OutputPtr == OutputBufferEnd)
{
printf("the buffer is full\n");
snd_pcm_uframes_t frames = snd_pcm_writei(playback_handle,OutputBuffer,OUTPUT_BUFFER_SIZE >> 3);
printf("after writei\n");
if(frames < 0)
{
int ret = snd_pcm_prepare(playback_handle);
printf("error 0\n");
if(ret < 0)
{
printf("error 1\n");
exit(1);
}
}
else if(frames >0 && frames < OUTPUT_BUFFER_SIZE>>3)
{
printf("in middle\n");//问题在这里,但是怎么可能会发生这种事情了.但是的确是发生了.
我告诉系统把OutputBuffer中的数据完全输出,但是实际上,偶尔一次,系统不这么做,就导致播放不了声音
// int ret = snd_pcm_prepare(playback_handle);
//abort();
}
怎么解决? |
|