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"); 之后,一切都好了!!!!

相关推荐
郁大锤8 天前
linux alsa-lib snd_pcm_open函数源码分析(四)
linux·音频·pcm·源码分析·驱动·alsa
橘子味的茶二17 天前
SDL事件相关
sdl
橘子味的茶二17 天前
SDL线程
sdl
苍天饶过谁?18 天前
SDL 播放PCM
ffmpeg·pcm
橘子味的茶二18 天前
SDL渲染器和纹理
sdl
橘子味的茶二18 天前
SDL打开YUV视频
ffmpeg·音视频·sdl
橘子味的茶二19 天前
SDL读取PCM音频
ffmpeg·音视频·pcm
郁大锤25 天前
linux alsa-lib snd_pcm_open函数源码分析(一)
linux·驱动开发·嵌入式硬件·音频·pcm·视频编解码
sdkdlwk25 天前
查看多个通道32bit音频pcm数据
音视频·pcm
帅气好男人_Jack1 个月前
利用Matlab工具生成滤波器
算法·pcm