前面几篇关于SDL的文章介绍的是以画面为主,这里介绍下SDL中针对音频播放提供的机制,以及如何应用. 对于音频而言,有几个概念需要事先了解下,采样率.声道数.量化位数,如果你不清楚的话,麻烦先了解下这几本参数的概念. 常用的采样率有8kHz(语音.电话).48kHz(电视),声道数常用的是双声道或5.1声道,量化位数8bit或16bit. SDL提供了音频设备.音频输入/输出的控制机制. 比较常规的做法是先创建音频设备,然后按照你的实际需求进行音频输入输出. 由于音频处理相对简单,这里仅在一个c…
本文主要内容是基于的“Beginning SDL 2.0(3) SDL介绍及BMP渲染”(以下简称BS3)基础上,将BMP加载及渲染修改为YUV420或I420的原始视频格式.阅读完本部分内容相信你可以对SDL2.0中的Renderer机制(支持硬件加速)有一定了解,并可以直接加载显示YUV数据. SDL 2.0新的支持硬件加速的视频渲染技术——Render SDL 1.x的版本的视频渲染技术是基于纯软件实现的,效率相对较差,通常很难满足实时渲染的需求.SDL 2.0之后针对这个问题,提供了新的…
SDL是一个跨平台的多媒体库.为了实现跨平台,SDL提供了一个简单的界面库抽象,比如提供了SDL_Window用于表示窗口句柄,SDL_Surface.SDL_Texture.SDL_Renderer用于处理画面刷新及基本的图形绘制,提供各种事件(鼠标.键盘.游戏手柄等)输入事件.窗口消息事件用于模拟基于消息的事件处理机制.同时也提供了线程创建.销毁以及同步的机制,在此基础上上也提供了文件访问.字体渲染.多格式图片加载.混音器等扩展功能. 正是由于SDL的跨平台特性,如果你仅仅是希望知道SDL的…
本文是在“Beginning SDL 2.0(4) YUV加载及渲染”(以下简称BS4)基础上做的功能完善,如果你对之间介绍的内容了解不多,麻烦先阅读之前的内容. 本文主要介绍如何完成一个基于MFC和SDL 2.0的YUV播放器,基本思路是使用Windows的WM_TIMER消息,定期刷新画面.(正规的播放器通常使用一个独立的线程用于做固定帧率的刷新,这里为了简单期间使用系统提供的定时器实现.) 工程创建 使用vs10创建mfc基于对话框的工程,2_sdl_yuv_player,配置好SDL包含…
本文整理并简要介绍了TwinklebearDev SDL 2.0 Tutorial相关内容(以下简称TDSDLTutorial). 这是作为我学习并了解SDL2.0功能一篇学习总结. TDSDLTutorial包含7个lesson.lesson 0主要是关于SDL2.0开发环境的配置(visual studio.mingw.linux gcc等). lesson 1和lesson 2介绍了bmp图片的加载.SDL中视频渲染的基本原理以及SDL初始化销毁的方式,其中主要涉及window.rende…
原文链接为 http://wiki.libsdl.org/Introduction. 由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下.了解SDL到底支持哪些功能. 本文部分内容为翻译内容.有任何不当支持请联系我. SDL全名Simple DirectMedia Layer (SDL).官网:http://www.libsdl.org/ What can SDL do? SDL功能简介 Read ahead for an overview…
环境准备 请按照我之前的文章-Android下基于SDL的位图渲染,安装必要的开发环境. 实践篇 这里主要参考Beginning SDL 2.0(6) 音频渲染及wav播放,只不过将源从WAV文件改成PCM文件. 准备你要播放的PCM文件 如故你不想使用我提供的PCM,可以自己用ffmpeg转一个PCM文件,具体命令如下: $ ffmpeg -i src.wav -f s16le -acodec pcm_s16le out.pcm 注意你需要知道这个PCM的采样率.量化位数.声道数.后续播放的时…
有时候在关于SDL的博文中看到一些评论,说SDL对中文的支持不佳,因为当程序涉及中文时总是输出乱码. 照我个人观点,这里面很多都是误解.下面就根据我在windows下使用SDL的情况,说说我的观点. SDL作为一个跨平台的库,在字符方面有它独特的地方.那就是,它的运行库支持的字符编码为UTF8,而不是windows中常见的各种本地字符编码.比如中文版windows使用的codepage 936,也有称其为GBK的,实际上是对基于GB2312字符集的EUC-CN编码方式做了一个基于UNICODE字…
vue2.0 之文本渲染-v-html.v-text 1.index.html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>vuedemo</title> </head> <body> <div id="app"></div> <!-- built files w…
COCOS2DX 3.0 优化提升渲染速度 Auto-batching 近期在看COCOS2DX 3.0的Auto-batching合批与Auto Culling动态缩减功能以下就来细致看看吧:整合好的渲染提速干货: 简单介绍 在游戏的绘制渲染中.往往消耗非常多资源和内存,当绘制精灵数量越多,游戏的卡顿会非常明显,为了优化和提升渲染效率. Cocos2d-x为我们提供了Auto-batching和SpriteBatchNode. Auto-batching 意思是Renderer将多次draw的…