本文所说的音频是指的纯音频,不包含视频的那种。
在控制台中使用SDL播放音频,一般情况下不会有问题。
但是在MFC中使用SDL播放音频的时候,会出现没有声音的情况。经过长时间探索,没有找到特别好的解决方案,但是有一种方式可以让声音播放出来:那就是让SDL显示图像(视频)时候的那个对话框弹出来,声音就会出现了。
具体的方法可以加载一张图片(比如说BMP),下图所示代码片段为加载BMP图片的代码。
SDL_Surface *screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE);
SDL_Surface *image;
/* Load the BMP file into a surface */
image = SDL_LoadBMP("background.bmp");
if (image == NULL) {
return 0;
}
/*
* Palettized screen modes will have a default palette (a standard
* 8*8*4 colour cube), but if the image is palettized as well we can
* use that palette for a nicer colour matching
*/
if (image->format->palette && screen->format->palette) {
SDL_SetColors(screen, image->format->palette->colors, 0,
image->format->palette->ncolors);
}
/* Blit onto the screen surface */
if(SDL_BlitSurface(image, NULL, screen, NULL) < 0)
fprintf(stderr, "BlitSurface error: %s\n", SDL_GetError());
SDL_UpdateRect(screen, 0, 0, image->w, image->h);
不明白这是为什么,但是程序就可以出声了。
分享到:
相关推荐
《ffmpeg基础库编程开发》482页 ...2 MFC中使用SDL播放音频没有声音的解决方法 465 附录B:经典代码示例 466 附录C:ffmpeg参数中文详细解释 477 附录D:ffplay的快捷键以及选项 479 附录E: ffmpeg处理rtmp流媒体 481
它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等功能。通过本程序可以学习视频...
并且能很好的在C++等高级语言中使用。在官方可以看到SDL所支持的语言很多。(Including Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant...
它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等功能。通过本程序可以学习视频...
FFmpeg再学习 -- FFmpeg+SDL+MFC实现图形界面视频播放器-附件资源
适合fresh man上手 ...2 MFC 中使用SDL 播放音频没有声音的解决方法 444 附录B:经典代码示例 445 附录 c:ffmpeg 参数中文详细解释 456 附录D:ffplay 的快捷键以及选项 458 附录E: ffmpeg 处理 rtmp 流媒体 459
目录 第一章 多媒体概念介绍 6 ...2 MFC中使用SDL播放音频没有声音的解决方法 465 附录B:经典代码示例 466 附录C:ffmpeg参数中文详细解释 477 附录D:ffplay的快捷键以及选项 479 附录E: ffmpeg处理rtmp流媒体 481
使用FFmpeg3.4+SDL2实现播放视频文件或者RTSP地址的MFC工程,已实现音频的播放。使用VS2013开发的
自己没事时候做的音视频、图像处理、网络分析有关的MFC工具,赚点积分,王者荣耀风格,本版本由于CSDN大小限制,是阉割版安装包,32位64位皆可用,完整版2G左右太大传不了。工具包括FFMPEG原生万能视频解码器、音...