Qt游戏开发必备!用QtMultimedia播放Ogg格式音乐

本文介绍了如何在Qt游戏开发中使用QtMultimedia模块播放Ogg格式的音乐,详细讲解了加载Ogg文件、解码及播放的过程,并提供了相关源代码和开发环境信息。
摘要由CSDN通过智能技术生成

Qt游戏开发必备!用QtMultimedia播放Ogg格式音乐


QtMultimediaQt4.6提出来的一个音频和视频的新底层。目的是针对开发者提供更加完全的视频和音频控制,同时不损失平台无关性的优点。而Ogg是一个优秀的开源多媒体容器,可以容纳多种编码格式的内容,而大家最为熟知的是Vorbis这个编码格式。这回我将亲自尝试QtMultimedia下播放OggVorbis音乐,而在游戏中播放音乐必不可少。

源代码和演示程序下载地址:这里

我的开发环境:

Ubuntu+ gcc4.4 + QtSDK 4.8.1 + QtCreator2.6

Windows8+ minGW4.4 + QtSDK 4.8.3 + QtCreator2.6

由于OggVorbis开源的性质,导致我们必须亲自解码。网上关于Ogg解码的内容非常少,我也是结合《游戏音频程序设计-Beginning.Game.Audio.Programming》和Ogg的文档才对OggVorbis格式有着一些理解。首先需要下载“libogg-1.3.0”和“libvorbis-1.3.2”这两个软件开发包。可以在xiph.org上(http://www.xiph.org/)得到这两个软件开发包(也可以下载我的源代码,那里面附带了oggvorbis的源代码和项目文件)。然后解压,软件开发包中附带了VisualStudio的项目文件,而我使用的是QtCreator2.6,所以我在阅读了VisualStudio的项目文件之后自己写了一个.pro文件来生成OggVorbis的静态库。大家可以到我的资源中下载相关的项目文件。(原创博客,反对未引用的转载。http://blog.csdn.net/jiangcaiyang123)

构建后获得了libOgglibVorbislibVorbisFile三个静态库,我们就可以使用现有的库函数构建我们的实验了。

下面是我定义的QOggVorbis类的声明:

#ifndef_QOGGVORBIS_H_

#define_QOGGVORBIS_H_


#include<QObject>

#include<QString>

#include<QStringList>


#defineDECLRARE_PROPERTY_WITH_GETTERS(aType,aProperty )private:\

aTypem_ ##aProperty;public:\

aTypeaProperty(void ){ returnm_ ##aProperty;}


structOggVorbis_File;//前向声明


classQOggVorbis:publicQObject

{

Q_OBJECT

Q_PROPERTY(quint16 audioFormatREAD audioFormat)

Q_PROPERTY(quint16 channelsREAD channels)

Q_PROPERTY(quint32 sampleRateREAD sampleRate)

Q_PROPERTY(quint32 byteRateREAD byteRate)

Q_PROPERTY(quint16 blockAlignREAD blockAlign)

Q_PROPERTY(quint16 bitsPerSampleREAD bitsPerSample)

Q_PROPERTY(QStringList userCommentsREAD userComments)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值