2009-10-29

LED电视

最近看到某厂家的LED电视广告。
我想我落伍了,连LED技术如此突飞猛进都不知道:LED竟然可以达到液晶电视机的分辨率和性能。
于是,赶紧恶补一下LED电视的知识。
结果,那是相当的有收获――LED电视,应该叫LED背光液晶电视。

噱头,炒作,有什么招都使出来吧。

2009-10-25

Linux & Windows

Linux
Windows
cat
type
ls -l dir
ls -1
dir /b
ls
dir /w
ls -l |grep "^d"
dir /ad
clear cls
history -c <Alt> + <F7>
history
doskey /history
shutdown -h 0

2009-10-19

[zz]用vlc做单播,组播及点播服务器

简述:
启动VLC。
菜单 视图 添加界面 Telnet界面
菜单 视图 添加界面 调试日志
通过telent客户端软件(超级终端、命令行telnet等)登录到 127.0.0.1 4212,将进入VLM

参考
http://jeremiah.blog.51cto.com/539865/161876

2009-10-15

ffmpeg编译

参考:

说明:
  • 参考2里面提到要先安装msys再安装MinGW,但是我发现安装msys时会提示询问MinGW的安装路径。所以,我认为参考3的正确性比较好。
  • 复制%msys%\etc\fstab.sample为%msys%\etc\fstab,打开%msys%\etc\fstab编辑,把c:/mingw /mingw这行前面部分改为MinGW的实际安装目录。
  • 盘符(例如"C:\")可以从根目录处访问(像这样"/C/")。
  • 如果希望使用FFmpeg包含的libavcodec库开发多媒体文件处理程序,还需要编译libavcodec的dll动态链接库:首先切换到FFmpeg的源代码目录,在开始编译前先使用"make distclean"清理上一次留下的中间文件,然后向configure脚本传递参数: ./configure --enable-shared --disable-static --enable-memalign-hack ;最后执行"make"命令就可以了。在FFmpeg目录下有四个子目录名字分别为:libavutil、libavcodec、libavformat、libavdevice,如果在前述步骤中成功生成了动态链接库,那么在这几个目录下都有SLIBNAME_WITH_MAJOR.dll和SLIBNAME.dll的文件。执行 make install ,则在%msys%\local下面生成所有重要文件和目录(bin, include, lib, share)。dll文件有三种:SLIBNAME_WITH_MAJOR.dll SLIBNAME_WITH_VERSION SLIBNAME.dll。这是因为MSys将ln(制作符号链接的程序)以cp(文件复制)来对待,所以就产生了这些相同的拷贝。
  • 如果需要使用MSVC开发,则需要修改msys.bat,在最前面加入 call "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat" (具体路径视MSVC安装而定),目的让ffmpeg调用VC的link,生成VC可用的lib。向configure脚本多传递参数./configure --enable-memalign-hack (--enable-memalign-hack选项是让MMX、SSE2等优化语句能在Windows上执行)。
  • 错误:configure: line xxx: pr: command not found 。解放方法:下载coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2,把pr.exe拷贝到%msys%\bin


2009-10-10

[zz]用Microsoft SDK实现中文语音发音方法小结

转自http://www.chinaeos.com/html/shangweiji/bcb/2009/0615/2646.html

一 安装Microsoft SDK 5.1
  安装后在环境变量及VC中设置相应的环境参数

二 安装Microsoft SDK中文包
  将其安装在Microsoft SDK 5.1所在的目录下,比如Microsoft SDK 5.1安装在了E:\Program Files\Microsoft Speech SDK 5.1目录下,那么Microsoft SDK 5.1中文包也应该安装在E:\Program Files\
  Microsoft Speech SDK 5.1目录下

三 配置Speech SDK引擎当前所处理的语言
  打开 "控制面板 ",打开 "语音 "配置项目,可以看到在这里我们可以指定当前可以对何种语言进行识别或者合成,还可以配置相关的硬件设备以及控制语速
  在 "文字-语音转换 "的 "语音选择 "组合框中选择简体中文(Microsoft Simplified Chinese)。这样就可以合成汉语文字了。
  
四 VC编程
  #include <sapi.h>
  ISpVoice* pVoice = NULL;
  //COM初始化:
  if (FAILED(::CoInitialize(NULL)))
  return;
  //获取ISpVoice接口:
  HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
  if( SUCCEEDED( hr ) )
  {
  UpdateData();
  CString str("欢迎来到武汉大学电子信息学院"); //要发音的字符串
  int BufSize = MultiByteToWideChar(936,0,str,-1,NULL,0); //计算简体中文字符串 s 转成 widestring 之后占用的内存字节数
  WCHAR wsz[128]; //定义WCHAR类型的数组wsz,因为Speak函数的第一个参数为WCHAR类型
  MultiByteToWideChar(936,0,str,-1,wsz,BufSize); //将 AnsiString 字符串 str 转化为 unicode 的 WideString
  hr=pVoice- >Speak(wsz, 0, NULL); //调用函数Speak发音
  pVoice- >Release(); //释放pVoice内存
  pVoice=NULL;
  }

2009-10-09

MFC获取文件时间

GetFileTime 是UTC
CFile::GetStatus 是Local Time

2009-10-08

[zz]2009年诺贝尔物理学奖获奖者高锟

[注:毕业后一直做光传输相关产品,所以,这篇新闻一定要转一下。]
http://news.163.com/09/1007/00/5KVVICC2000120GU.html

新华网斯德哥尔摩10月6日电 得益于光纤通信和CCD图像传感器的应用,诺贝尔奖揭晓的消息和情景如今能瞬间传遍全球。分别研究出这两项成果的华裔科学家高锟和两名美国科学家威拉德・博伊尔、乔治・史密斯,于6日荣获2009年诺贝尔物理学奖。

瑞典皇家科学院常任秘书贡诺・厄奎斯特6日在揭晓奖项的新闻发布会上说,高锟因在"有关光在 纤维中的传输以用于光学通信方面"取得了突破性成就,获得今年物理学奖一半的奖金,共500万瑞典克朗(约合70万美元);博伊尔和史密斯发明了半导体成 像器件――电荷耦合器件(CCD)图像传感器,两人分享今年物理学奖的另一半奖金。

高锟――"光纤之父"

高锟是继去年钱永健获得诺贝尔化学奖之后,又一位获得诺贝尔奖的华裔科学家。高锟1933年 在上海出生,1954年赴英国攻读电机工程,先后获得学士和博士学位。1987年,高锟出任香港中文大学第三任校长,1996年卸任。在与内地科技界的交 流合作中,高锟主张"一步一步把双方的联系实际化"。他于1996年当选为中国科学院外籍院士。

发布会上,诺贝尔物理学奖评选委员会主席约瑟夫・努德格伦用一根光纤电缆形象地解释了高锟的 重要成就:早在1966年,高锟就取得了光纤物理学上的突破性成果,他计算出如何使光在光导纤维中进行远距离传输,这项成果最终促使光纤通信系统问世,而 正是光纤通信为当今互联网的发展铺平了道路。

"我对于获颁诺贝尔物理学奖深感荣幸,"高锟在得知获奖后说。香港特区行政长官曾荫权表示,诺贝尔物理学奖是科学界的最高荣誉,他和香港市民衷心祝贺高锟教授获此殊荣。高锟教授不但是一位杰出的科学家,也是一位谦谦君子和有承担的教育家。



2009-10-02

如何改变按钮的光标

比如,当光标停在鼠标上方时,变成手形状的。

不要在OnSetCursor()之外设置,否则,那将得到相反的结果:当光标停在鼠标上方时是箭头,在其他地方变成手形状。

在OnSetCursor()中
        CRect rcStatic;   
        CPoint ptCursor;  

        GetCursorPos(& ptCursor);

            GetDlgItem(IDOK)->GetWindowRect(rcStatic);
            if(rcStatic.PtInRect(ptCursor))
            {
                SetCursor(m_hHandCursor);
                return TRUE;//注意,要return
            }

    //...
    //所有按钮的处理

    return CDialog::OnSetCursor(pWnd, nHitTest, message);

Hand形状的光标是系统预置,但是,如果直接用 LoadCursor(NULL, IDC_HAND); 则编译出错。
那是因为没有把#define IDC_HAND MAKEINTRESOURCE(32649) 给定义进来。
这是为什么呢?因为没有#define WINVER 0x0500。
不过,当你真的那样做了以后,会有一堆NOTE: WINVER has been defined as 0x0500 or greater which enables ...的提示。
哎,M$总是唧唧歪歪。
你觉得怎么好就怎么整吧。

2009-10-01

庆祖国60华诞

依次为Google Doodle、Baidu Logo、Bing背景图。