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

相关推荐
proware8 天前
3588 ES8388 PCM之需求分析
pcm·3588·es8388
Android系统攻城狮11 天前
Android tinyalsa深度解析之pcm_format_to_bits调用流程与实战(一百二十三)
android·pcm·tinyalsa·音频进阶·音频性能实战
Android系统攻城狮12 天前
Android tinyalsa深度解析之pcm_set_avail_min调用流程与实战(一百二十二)
android·pcm·tinyalsa·音频进阶·android hal·audio hal
Android系统攻城狮13 天前
Android tinyalsa深度解析之pcm_get_delay调用流程与实战(一百一十九)
android·pcm·tinyalsa·音频进阶·android hal·audio hal
Android系统攻城狮14 天前
Android tinyalsa深度解析之pcm_get_timestamp调用流程与实战(一百一十八)
android·pcm·tinyalsa·android hal·audio hal
Android系统攻城狮17 天前
Android tinyalsa深度解析之pcm_state调用流程与实战(一百一十七)
android·pcm·tinyalsa·音频进阶·音频性能实战
Android系统攻城狮17 天前
Android tinyalsa深度解析之pcm_get_available_min调用流程与实战(一百一十六)
android·pcm·tinyalsa·音频进阶·音频性能实战
Knight_AL18 天前
如何用 FFmpeg 处理 PCM 音频 & 判断 PCM 文件到底是什么格式
ffmpeg·音视频·pcm
xmRao25 天前
Qt+FFmpeg 实现 PCM 音频转 AAC 编码
qt·ffmpeg·pcm
Android系统攻城狮1 个月前
Android tinyalsa深度解析之pcm_close调用流程与实战(一百零四)
android·pcm·tinyalsa·音频进阶·音频性能实战·android hal