wanted_spec是一个SDL_AudioSpec结构体。 SDL_AudioSpec是包含音频输出格式的结构体,同时它也包含当音频设备需要更多数据时调用的回调函数。 --- if (SDL_OpenAudio(&wanted_spec, &spec) < 0) { fprintf(stderr, "SDL_OpenAudio: %s/n", SDL_GetError()); return -1; } 如果你的程序能够处理不同的音频...
在SDL 中 , 使用 SDL_AudioSpec 结构体来设置音频参数 , 该结构体种包含了音频的多个关键属性 , 创建一个 SDL_AudioSpec 结构体 , 设置该结构体的各个成员参数 ; 采样频率 ( freg ) :整数 , 表示音频数据的采样频率 , 常见的采样率有44100Hz、48000Hz等 , 这决定了音频的播放质量 , 采样率越大质量越高 ...
#include<SDL2/SDL.h>intmain(){SDL_AudioSpec want,have;SDL_memset(&want,0,sizeof(want));// 初始化wantwant.freq=44100;want.format=AUDIO_U8;want.channels=2;want.samples=4096;SDL_OpenAudio(&want,&have);// 输出实际的音频格式switch(have.format){caseAUDIO_U8:printf("Audio format: AUDIO_U8...
接下来,我们创建一个 SDL_AudioSpec 结构来描述我们的音频格式。 SDL_AudioSpec wavSpec;wavSpec.freq=0;// 频率可以设置为 0wavSpec.format=AUDIO_S16SYS;// 音频格式设置为 16 位系统格式wavSpec.channels=2;// 设置为立体声音频wavSpec.samples=4096;// 音频缓冲区大小wavSpec.callback=NULL;// 不需要回...
SDL_AudioSpec是包含音频输出格式的结构体,同时它也包含当音频设备需要更多数据时调用的回调函数,此结构体是关键。 typedef struct SDL_AudioSpec { int freq; // DSP频率—每秒采样数 SDL_AudioFormat format; // 音频数据格式 Uint8 channels; // 通道数1-单声道,2-立体声 ...
SDL_AudioSpec - 定义音频输出格式和回调。 SDL_PixelFormat - 描述像素格式。 常用函数 SDL_Init- 初始化SDL库。 SDL_CreateWindow- 创建一个窗口。 SDL_DestroyWindow - 销毁一个窗口。 SDL_CreateRenderer- 创建一个2D渲染器。 SDL_DestroyRenderer - 销毁渲染器。
}//SDL_AudioSpecSDL_AudioSpec wanted_spec; wanted_spec.freq=48000; wanted_spec.format=AUDIO_S16SYS; wanted_spec.channels=2; wanted_spec.silence=0; wanted_spec.samples=1024; wanted_spec.callback=fill_audio;if(SDL_OpenAudio(&wanted_spec, NULL) <0) { ...
SDL_AudioSpec是包含音频输出格式的结构体,同时它也包含当音频设备需要更多数据时调用的回调函数,此结构体是关键。 typedef struct SDL_AudioSpec{int freq; // DSP频率—每秒采样数SDL_AudioFormat format; // 音频数据格式Uint8 channels; // 通道数1-单声道,2-立体声Uint8 silence; // 音频缓冲静音值...
SDL_AudioSpec具体信息如下: freq:音频采样率,即每秒采样数,单位 Hz,采样率越高,音频质量越好,但占用的带宽和存储空间也越大。 format:音频数据格式。 channels:音频通道数,常见的如 1 表示单声道,2 表示立体声。 silence:表示静音音量值,常为 0。
SDL_OpenAudioDevice方法有两个参数desired和obtained都是SDL_AudioSpec类型的。 这里的意思是我们传入desired指定的音频参数,但不一定是 SDL 支持的,所以 SDL 会返回一个它支持的参数信息放在obtained里面。 不过为了简单就先把它写死好了,但即使写死了有些信息还是要和你的 PCM 文件对应上才行,比如freg采样率和chan...