SDL 基准声音

Posted

技术标签:

【中文标题】SDL 基准声音【英文标题】:SDL Benchmark Sound 【发布时间】:2013-11-25 12:53:49 【问题描述】:

我正在为我的最终 cs 项目在两个图形库(SDL、SFML)之间做一个基准项目。我几乎完成了,但是当我对播放声音的速度进行基准测试时,无论他做了多少次循环,它总是返回耗时 0。你知道我的代码有什么问题吗?声音确实在播放,但我可能应该做一些其他算法。

void playSound()

    Mix_PlayChannel(-1, sound, 0);


void soundBenchmark(int numOfCycles)

    int time = SDL_GetTicks(), timeRequired;
    for(int i = 0; i < numOfCycles; i++) playSound();
    timeRequired = SDL_GetTicks() - time;
    cout << "Time required for " << numOfCycles << " cycles: " <<  timeRequired << " seconds.\n";

【问题讨论】:

【参考方案1】:

函数Mix_PlayChannel() 不会阻塞代码的执行。该函数只是将数据发送到声卡(或等效)并返回。

您必须记住您使用Mix_PlayChannel() 使用的频道,然后定期使用Mix_Playing() 检查该频道是否正在播放并查看时间。

【讨论】:

以上是关于SDL 基准声音的主要内容,如果未能解决你的问题,请参考以下文章

PIANO IN C,sdl 声音问题

在 C++/Linux 中使用 SDL_Mixer 时没有声音

SDL_Mixer 设置声音位置

SDL_Mixer 声音问题

ncurses + SLD2 和 SDL2_Mixer:尝试播放 mp3 时没有声音

ubuntu 下SDL 声音无法播放,我的电脑能正常听哥的。 Mix_OpenAudio: No available audio device