Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)

摘要:
从Qt官方网站下载的源代码不继承phonon,只提供源代码。然而,在Win7+VS2005中编译声子时存在许多问题,因为声子只是一个前端程序。要使用它播放多媒体,您需要与Qt基本库和phonn_Backend、多媒体背景等配合。在新配置Qt编译选项后,您无需完全重新编译Qt。您可以选择性地编译phonon和phonbackend,从而节省时间。

Qt官网上下载的源代码在编译时并没有将phonon继承进去,只提供了源代码,而在Win7+VS2005中编译phonon时遇到不少的问题,因为phonon只是一个前端程序,要使用其实现多媒体的播放还需要配合Qt基本库、phonon_backend(后端插件)和多媒体播放后台等等。

phonon只提供了一套API接口给客户端程序调用,同时为后端插件提供一个规范,向后端插件传递客户端程序发出的指令,并且从后端插件返回给客户端程序当前媒体的状态和信息,起到桥梁的作用。而后端插件才是实际进行读入媒体、解码并且播放的部分,所以要在Qt环境下使用phonon需要:
  1. 编译Phonon库:通常情况下Qt默认没有编译Phonon以及Phonon_backend,需要在configure时加入-phonon和-phonon-backend参数,然后单独进入phohoh文件夹进行编译即可;
  2. 编译Phonon后端插件:Qt为3大平台提供了一个可用的后端插件,放在src/plugins/phonon目录下。进入目录编译即可,Qt会自动选择当前系统对应的后端插件。对于Windows平台,Qt只提供了DirectShow这个后端插件,并且调用的是DX的SDK,所以只能由VC编译,如果是MinGW用户,可以选择-phonon-vlc-mplayer作为后端插件;而DirectShow同样也只是一个框架,解码还得靠系统里安装的解码器和滤镜,下面要详细说明的就是编译这个后端插件的过程;
  3. 在后端插件编译完成后,可以运行Demo中的mediaplayer测试;
安装Microsoft .Net Framework 4.0 Full
安装Win7 SDK前需要安装Microsoft .Net Framework 4.0 Full,到微软官网下载安装程序安装即可;
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第1张
安装Win7 SDK
安装Win7 SDK之前确保所有VC运行库(vc++ x86/64 runtime/redistributable)版本不能大于10.0.30319,如存在大于此版本的运行库则卸载,否则会导致编译失败;
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第2张
卸载完高版本的运行库后开始安装SDK,默认选项:
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第3张
重新配置Qt编译选项
安装完毕后运行Visual Studio 2005 Command prompt,重新configure Qt,先nmake confclean一次,清除以前配置过的文件;
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第4张
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第5张
清理完毕后重新配置Qt编译命令:configure -debug-and-release -platform win32-msvc2005 -plugin-sql-sqlite -plugin-sql-odbc-phonon -phonon-backend-vcproj
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第6张
单独编译Phonon以及Phonon backend
重新配置完毕后直接进入phonon目录编译phonon库%QTDIR%srcphonon,编译完毕后再进入%QTDIR%srcpluginsphonon 编译phonon backend,此时会报错找不到dshow.h文件,原因是没有将平台SDK include文件的路径添加到环境变量中去,运行脚本:C:Program FilesMicrosoft SDKsWindowsv7.1BinSetEnv.Cmd
然后再nmake一次即可编译出phonon_ds9d4.dll和phonon_ds94.dll,
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第7张
测试
此时运行Qt自带的例子
Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)第8张
打开媒体播放没问题说明编译成功。
总结
  1. 此前根据诺基亚开发文档说明,为phonon的编译准备安装了DirectX SDK,后来重新编译一次以后发现不知从何时开始DirectShow已经被整合到Platform SDK中去,此次编译安装的PlatformSDK版本为7.1,已经包含DirectShow,所以无需再安装DirectX SDK。
  2. 关于安装Microsoft .Net Framework 4.0 Full,第一次在台式机编译phonon时因为台式机已经安装Visual Studio 2010,自带Microsoft .Net Framework 4.0,但不知道是否完整版本,后来编译通过了;第二次编译Phonon在笔记本中,环境为Win7+Visual Studio 2005,没有手动安装Microsoft .Net Framework 4.0 Full,但已经手动打完所有Windows更新补丁,通过更新程序检查已无更新可用,编译Phonon一样通过。
  3. 关于运行C:Program FilesMicrosoft SDKsWindowsv7.1BinSetEnv.Cmd,此脚本须在Visual Studio 2005 Command prompt命令行窗口中执行,设置的环境变量仅对当前编译的工程有效,本人一开始以为在windows的cmd窗口中执行可以设置系统环境变量,后来编译phonon backend的时候还是报错,找不到dshow.h文件,才知道要在当前编译命令行窗口中执行此脚本。
  4. 从新配置Qt编译选项后无须再重新全编译一次Qt,选择性编译phonon和phonon backend就可以,节省时间。

转载请注明:http://www.cnblogs.com/bingcaihuang/archive/2013/03/21/2972721.html

免责声明:文章转载自《Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue项目中echarts属性总结Terminator的初体验下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android编程获取手机型号,本机*,sdk版本号及firmware版本号号(即系统版本号号)

Android开发平台中,可通过TelephonyManager 获取本机号码。 TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); txtPhoneNumber.setText(phoneMgr.getLine1Num...

【问题解决记录】无法识别的标志“-sdlMode”,在“p2”中

本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/这是本人第一次使用MarkDown编辑器,试试看效果—w—,下面是正文: ## 一、报错原因 昨天用SIMD指令编写了几个矩阵计算函数,想要替换掉DX的函数达到优化性能的目的。 因为公司项目使用的编译器是VS2008,而VS2013编译出来的SI...

如何指定GCC的默认头文件路径

如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要...

乘风破浪,遇见最美Windows 11之现代Windows桌面应用开发 Windows UI Library (WinUI)

什么是Windows UI Library (WinUI) The Windows UI Library (WinUI) is a native user experience (UX) framework for both Windows desktop and UWP applications. Windows UI库(WinUI)是适用于Windo...

【转】在Eclipse下搭建Android开发环境教程

本文将全程演示Android开发环境的搭建过程,无需配置环境变量。所有软件都是写该文章时最新版本,希望大家喜欢。   一 相关下载 三 Eclipse配置   (1)Java JDK下载   1 安装android 开发插件   (2)Eclipse下载   2 配置Android SDK   (3)下载Android SDK   3 新...

深入浅出Node.js(上)

(一):什么是Node.js Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹。从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟Joyent获得企业资助,再到今年发布Windows移植版本,Node.js的前景获得了技术社区的肯定。InfoQ一直在关注Node.js的发展,在今年的两次...