SDL播放音频的方法是:设置音频选项:采样率(在SDL结构中称为频率“freq”),通道数量等等,并设置回调函数和userdata。当我们开始播放音频时,SDL将不断调用这个回调函数,并要求它填充一定数量的字节的音频缓冲区。在将这些信息放入SDL_AudioSpec结构中之后,我们调用SDL_OpenAudio(),这将打开音频设备,并将其返回给另一个A...
3、打开音频设备 SDL_OpenAudio 函数 用于 设置音频参数 并 打开音频设备 , 为后续的音频播放做准备 ; SDL_OpenAudio 函数原型如下 : 代码语言:javascript 代码运行次数:0 运行 AI代码解释 intSDL_OpenAudio(SDL_AudioSpec*desired,SDL_AudioSpec*obtained); SDL_AudioSpec *desired参数 : 设置用户期望的音频配置 ; ...
(filename,&spec,&data,&length);stream=SDL_OpenAudioDeviceStream(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK,&spec,NULL,NULL);SDL_ResumeAudioStreamDevice(stream); }SDL_Evente;while(SDL_PollEvent(&e))if(e.type==SDL_EVENT_QUIT){SDL_DestroyAudioStream(stream);SDL_free(data);SDL_DestroyWindow(window);...
使用SDL_OpenAudio()或SDL_OpenAudioDevice()函数,并提供填充好的SDL_AudioSpec结构体来打开音频设备。你可以选择接收一个SDL_AudioSpec的实例,用来接收设备实际使用的音频规格参数,有时候这可能由于硬件限制与请求的参数不完全相符。 下面是代码说明如何填充SDL_AudioSpec结构体并使用它来打开音频设备: // 定义回调函数 v...
【二、配置音频参数 并 打开音频设备】SDL_OpenAudio() 使用SDL_OpenAudio()打开音频设备。该函数需要传入一个SDL_AudioSpec的结构体。DL_OpenAudio()的原型如下。 【函数原型】 intSDLCALLSDL_OpenAudio(SDL_AudioSpec * desired, SDL_AudioSpec * obtained); ...
int SDL_OpenAudio(SDL_AudioSpec * desired, SDL_AudioSpec * obtained); 参数: desired:表示所需输出格式的SDL_AudioSpec结构。有关如何准备此结构的详细信息,请参阅SDL_OpenAudioDevice文档。 obtained: 用实际参数填充的SDL_AudioSpec结构,或 NULL。 return:如果成功则返回 0,将实际的硬件参数放入 指向的结构中obt...
创建音频播放回调函数,打开音频设备 SDL_OpenAudio 开始播放 SDL_PauseAudio 打开文件循环读取数据到缓冲 关闭音频设备 SDL_CloseAudio 释放资源,退出 SDL_Quit #include<iostream>#include<fstream>#include<cmath>// SDL 播放PCM数据extern"C"{#include<SDL.h>}#pragmacomment(lib,"SDL2.lib")Uint8* g_audio_...
throw std::runtime_error("SDL_OpenAudio failed"); } if (SDL_OpenAudioDevice(NULL, 0, &wanted_spec, &_audio_config, SDL_AUDIO_ALLOW_ANY_CHANGE) < 0) { throw std::runtime_error("SDL_OpenAudioDevice failed"); }InfoL << "actual audioSpec, " << "freq:" << _audio_config.freq ...
1:在使用SDL播放音频的时候发现SDL_OpenAudioDevice打开一直失败,导致SDL不能进入回调函数。 使用SDL_GetError()打印错误提示XAudio2: XAudio2Create() failed at open. 解决办法:因为SDL_Init()是在主线程中初始化的,则在打开的线程中加入CoInitialize(NULL);...
SDL_OpenAudio 函数原型如下 : int SDL_OpenAudio(SDL_AudioSpec *desired, SDL_AudioSpec *obtained); 1. SDL_AudioSpec *desired参数 : 设置用户期望的音频配置 ; SDL_AudioSpec *obtained参数 : 实际的音频设备的参数 , 在本篇博客中暂时设置为 NULL ; ...