首页 新闻 会员 周边 捐助

mfc+FFmpeg+sdl2,关于sdl_audioSpec结构体和函数sdl_openAudio返回值的问题

0
[已解决问题] 解决于 2023-03-28 16:56

我通过直接输入文件路径得到的解码数据到sdl_openAudio后返回值正常,通过mfc控件获取的相同文件,在解码后到sdl_openAudio的返回值却小于0
加断点发现,小于0的情况里,Spec结构体中音频缓冲区Spec.size为0
不知道有没有人遇到过这种情况?

或者说,导致sdl_audioSpec结构体中size值为0的情况都有哪些呢?

多歧路今安在的主页 多歧路今安在 | 菜鸟二级 | 园豆:202
提问于:2023-03-23 15:50
< >
分享
最佳答案
0

导致SDL_AudioSpec结构体中size值为0的情况可能有以下几种情况:

未正确初始化SDL_AudioSpec结构体:SDL_AudioSpec结构体中包含了许多成员变量,如果未正确初始化,其中一些成员变量可能会被设置为0或者未定义的值,导致size值为0。

音频数据源异常:如果音频数据源异常,例如音频文件格式不正确、音频数据损坏等,也可能导致SDL_AudioSpec结构体中size值为0。

硬件限制:某些情况下,硬件限制可能导致SDL_AudioSpec结构体中size值为0。例如,如果音频数据源的采样率、通道数等参数超出了硬件的支持范围,那么就会导致size值为0。

并发访问:如果在多线程环境下访问SDL_AudioSpec结构体,可能会导致size值为0。在多线程环境下,必须使用锁机制等方式确保对SDL_AudioSpec结构体的访问是同步的,否则可能会导致数据异常。

对于你的具体问题,可能需要更多的信息才能确定原因。可以尝试检查代码中的初始化操作是否正确,音频数据源是否正常,是否存在硬件限制,是否存在并发访问等情况。

奖励园豆:5
Technologyforgood | 大侠五级 |园豆:7541 | 2023-03-27 21:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册