1
对于使用SDL播放音频,您必须提供SDL_AudioSpec结构才能打开音频设备,此处有一个名为“格式”的参数。这是什么?它与音频设备还是音频文件有关?SDL_AudioSpec中格式参数的含义是什么?
对于使用SDL播放音频,您必须提供SDL_AudioSpec结构才能打开音频设备,此处有一个名为“格式”的参数。这是什么?它与音频设备还是音频文件有关?SDL_AudioSpec中格式参数的含义是什么?
正如documentation(您应该阅读)所述,格式指定音频数据格式。
例如
AUDIO_U16MSB -> Unsigned 16-bit big-endian samples
或
AUDIO_U8 -> Unsigned 8-bit samples
格式描述的数据的类型被存储什么,字符型,无符号字符,短等...,所以程序能够正确地解析它。
当您致电SDL_OpenAudio()
时,您可以设置您的首选格式。如果首选格式不可用的设置改变为硬件设置
引用从文档:
SDL_OpenAudio读取来自所期望的SDL_AudioSpec结构这些字段传递给该函数,并试图找到一个音频配置匹配你想要的。如上所述,如果获得的参数为NULL,则SDL将在播放时从所需的音频设置转换为硬件设置。
感谢您的回答。我确实找到了这些文档,但是我不清楚它的含义。由于它是一个文件属性,我试图在我从ffmpeg获得的codecContext中找到它,并找到一个文件,我发现AV_SAMPLE_FMT_U8确实与SDL中的AUDIO_U8设置相匹配,但另一个文件告诉我它的示例格式是AV_SAMPLE_FMT_FLTP。任何想法与SDL格式匹配?到目前为止,我只通过扬声器获得噪音... – kodu 2013-03-08 15:27:37
如果在Windows上尝试AUDIO_S16。最好是使用[SDL_mixer](http://www.libsdl.org/projects/SDL_mixer/)+为它找到一个教程。 – 2013-03-08 16:11:20