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

相关推荐
杰瑞不懂代码17 小时前
PCM均匀量化与μ-law非均匀量化的仿真对比:误差特性与SNR分析
人工智能·matlab·语音识别·pcm·均匀量化·非均匀量化
Android系统攻城狮19 小时前
Android ALSA进阶之处理PCM的ioctl命令snd_pcm_lib_ioctl:用法实例(一百)
android·pcm·alsa·音频进阶
彷徨而立9 天前
【SDL】多线程中,SDL_Init() 接口被两个线程同时调用了,会有啥问题?
linux·sdl
Android系统攻城狮13 天前
Android ALSA驱动进阶之设置共享内存snd_pcm_lib_mmap_iomem:用法实例(九十九)
android·pcm·音频进阶·alsa驱动·android驱动
扶尔魔ocy20 天前
【QT window】multimedia+ffmpeg实现(PCM和MP4)录音功能
qt·ffmpeg·pcm
Android系统攻城狮21 天前
Android ALSA驱动进阶之设置访问掩码snd_pcm_access_mask_set:用法实例(九十九)
android·pcm·音频进阶·alsa驱动·android驱动
无敌最俊朗@21 天前
音频格式全解析:PCM到AAC
pcm·aac
Android系统攻城狮22 天前
Android ALSA驱动进阶之获取采样格式位宽snd_pcm_format_width:用法实例(九十八)
android·pcm·音频进阶·alsa驱动
扶尔魔ocy22 天前
【QT window】ffmpeg实现录音功能之无损格式--PCM
ffmpeg·pcm
仪***沿1 个月前
10kW 虚拟同步发电机 VSG 预同步并网控制的 Matlab 仿真探索
pcm