c++ - 我可以在同一个游戏中使用 Mix_OpenAudio 和 SDL_OpenAudio 吗?

标签 c++ audio sdl

<分区>

我正尝试使用 SDL 1.2 完成一个学校项目,但我遇到了一个无法解决的问题。

游戏有几个游戏状态模块,每个模块都有一个功能 int Run(SDL_Surface *screen);

在每个模块中,Run() 初始化音频,运行其循环,然后在返回前关闭音频。

所有模块都使用 Mix_OpenAudio() 和 Mix_CloseAudio() 来初始化/取消初始化声音,并且可以很好地协同工作。

唯一的异常(exception)是我使用 SDL_FFMpeg 放映电影的电影电影模块。这个模块迫使我改用 SDL_OpenAudio()

SDL_OpenAudio 第一次失败并出现错误“音频设备已打开”,但第二次成功。

一旦我运行了电影模块,其他模块中的所有声音都停止工作,即使它们的所有函数都返回 0 表示成功。

有人知道发生了什么事吗?

最佳答案

The conflicts chapter告诉这个:

When using SDL_mixer functions you need to avoid the following functions from SDL:

SDL_OpenAudio Use Mix_OpenAudio instead.

因此我猜你的问题的答案是:你不能混合使用 SDL_OpenAudio()MIX_OpenAudio() 函数。

关于c++ - 我可以在同一个游戏中使用 Mix_OpenAudio 和 SDL_OpenAudio 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597252/

相关文章:

c++ - sdl表面到opengl纹理

python - 如何链接 Python (2.7.3) 和 cpp

java - 顺畅的声音搜寻

audio - 如何计算音频 dB 级别?

javascript - 降低JavaScript中HTML音频的音量

c++ - 我应该如何在自定义命令行中处理文本 IO?

c - 为什么这个 SDL2 程序变慢了?

c++ - 字段的类型不完整 const char * []

c++ - g++7.2.0 自动推导非类型参数失败

c++ - 在堆中共享一个对象