SDL播放pcm无声音的原因

试过了网上各种:

  • 要用if(SDL_Init(SDL_INIT_AUDIO | SDL_INIT_TIMER)) ,不要用if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) ---NO

  • 无论如何先SDL_memset(stream, 0, len); ---NO

最后对比了一个可以出声的程序,原因如下:

"fopen()"函数中的"r"和"rb"表示以只读方式打开文件,但是前者是文本模式,后者是二进制模式。在文本模式中,即使操作系统使用不同的换行符,都会被转换为'\n'进行处理。在二进制模式下,文件中的所有数据都被视为raw数据,且不进行任何的字符集转换。

然后,看了看不出声的程序,是用了audio_fd = fopen(path, "r");,改成audio_fd = fopen(path, "rb"); 之后,一切都好了!!!!

相关推荐
工藤新一¹2 天前
C++/SDL进阶游戏开发 —— 双人塔防游戏(代号:村庄保卫战 13)
c++·游戏·游戏引擎·毕业设计·sdl·c++游戏开发·渲染库
Antonio9152 天前
【音视频】SDL简介
音视频·sdl
工藤新一¹2 天前
C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 14)
开发语言·c++·游戏引擎·游戏开发·sdl·实践项目
一路向北he2 天前
pcm数据不支持存储在json里面,需要先转base64
json·pcm
亦双城的双子娴2 天前
通过音频的pcm数据格式利用canvas绘制音频波形图
音视频·pcm·canva可画
偶尔贪玩的骑士6 天前
Visual Studio2022 配置 SDL3及拓展库
c++·游戏·sdl
CheungChunChiu10 天前
PCM 参数深度解析:采样率、帧、缓存大小与多通道关系
android·linux·嵌入式·pcm·通道·tinyalsa·音频开发
Antonio91513 天前
【音视频】SDL播放PCM音频
ffmpeg·音视频·pcm
Json____18 天前
springboot 处理编码的格式为opus的音频数据解决方案【java8】
spring boot·后端·音视频·pcm·音频处理·解码器·opus
Liu-Eleven1 个月前
嵌入式音频框架alsa学习之pcm状态
学习·音视频·pcm