首页 > 其他分享 >SDL音频播放

SDL音频播放

时间:2022-12-07 16:55:06浏览次数:42  
标签:音频 INIT audioDeviceID SDL 播放 size

与很多教程是一样的

第一步初始化:SDL_Init(SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS);

第二步,配置音频参数 SDL_AudioSpec audioSpec;创建设备ID:SDL_OpenAudioDevice(SDL_AUDIO_ALLOW_ANY_CHANGE)

 

 

第三步:拿到大于0的ID后,启动设备播放SDL_PauseAudioDevice(audioDeviceID, 0);

第四步:音频数据过来后,如果是push进去的,就直接入队就好SDL_QueueAudio(audioDeviceID,data,size)

入队后,还可以查看当当前有多少数据未播放,auto size = SDL_GetQueuedAudioSize(audioDeviceID);

  送数据过快,auto size = SDL_GetQueuedAudioSize(audioDeviceID);这里就会很快累积的很多,因为我们也不知道底层音频缓冲容量有多少,所以不知道什么时候送满了,数据溢出了;如果送数据比较慢,比如上一帧据本帧延迟的时间足以播放完当前缓冲的音频了,那就是静音,根据目前的测试情况看并不会因为数据断流,就停止SDL工作;什么时候接着送数据,还是会继续播放声音;


 

标签:音频,INIT,audioDeviceID,SDL,播放,size
From: https://www.cnblogs.com/8335IT/p/16963575.html

相关文章