QT音乐播放问题QMedia的使用
2018-01-15 19:22
543 查看
最近想做一个Linux开发板的QT音乐播放器,准备先在Windows上试试,写了一些代码如下:
注:使用QMediaPlayer需要在项目文件.pro加入QT += multimedia
头文件为默认,cpp文件如下
cpp文件:
程序编译运行都没问题,就是声音出不来,百度发现Qt 中的多媒体播放,底层是使用DirectShowPlayerService,需要一个DirectShow解码器,例如LAV Filters
相关帖子:
http://blog.csdn.net/qqwangfan/article/details/52469859
http://blog.csdn.net/z609932088/article/details/51248596
下载LAV Filters地址
http://forum.doom9.org/showthread.php?t=156191 里的
Binaries for the most recent version are available here:
Version 0.68.1: Installer (both x86/x64)【建议直接下载安装包,ZIP的文件我这里安装没有效果】 – Zips: 32-bit & 64-bit
Download 3D Plugin: 32-bit & 64-bit
安装包网盘地址:链接:https://pan.baidu.com/s/1jJFirmm 密码:vmy8
安装之后,提示
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()
按照网上的说法是路径错误,但是!我的文件路径是直接从Windows文件管理器复制过来的,不应该啊!尝试了好几次,仍然不行。突然灵光一闪,把“\”改为“/”,运行,音乐放出来的那一刻,真的是激动了一下。
以后要记住了,QT文件路径用的是“/”,而Windows用的是“\”.
修正后的代码:
.h文件为默认
cpp文件:
QMediaPlayer是一个很强大的类不仅可以播放各种音乐,还可以播放视频
aa2e
注:使用QVideoWidget 需要在项目文件.pro加QT += multimediawidgets
头文件为默认
cpp文件如下:
这个项目的源码:
http://download.csdn.net/download/qq_40194498/10206873
注:使用QMediaPlayer需要在项目文件.pro加入QT += multimedia
头文件为默认,cpp文件如下
cpp文件:
#include "widget.h" #include "ui_widget.h" #include <QString> #include <QFileInfo> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_clicked() { QMediaPlayer *myPlayer= new QMediaPlayer; myPlayer->setMedia(QUrl::fromLocalFile("E:\QTcode\111.mp3")); myPlayer->setVolume(80); myPlayer->play(); }
程序编译运行都没问题,就是声音出不来,百度发现Qt 中的多媒体播放,底层是使用DirectShowPlayerService,需要一个DirectShow解码器,例如LAV Filters
相关帖子:
http://blog.csdn.net/qqwangfan/article/details/52469859
http://blog.csdn.net/z609932088/article/details/51248596
下载LAV Filters地址
http://forum.doom9.org/showthread.php?t=156191 里的
Binaries for the most recent version are available here:
Version 0.68.1: Installer (both x86/x64)【建议直接下载安装包,ZIP的文件我这里安装没有效果】 – Zips: 32-bit & 64-bit
Download 3D Plugin: 32-bit & 64-bit
安装包网盘地址:链接:https://pan.baidu.com/s/1jJFirmm 密码:vmy8
安装之后,提示
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()
按照网上的说法是路径错误,但是!我的文件路径是直接从Windows文件管理器复制过来的,不应该啊!尝试了好几次,仍然不行。突然灵光一闪,把“\”改为“/”,运行,音乐放出来的那一刻,真的是激动了一下。
以后要记住了,QT文件路径用的是“/”,而Windows用的是“\”.
修正后的代码:
.h文件为默认
cpp文件:
#include "widget.h" #include "ui_widget.h" #include <QString> #include <QFileInfo> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_clicked() { //建立QMediaPlayer 对象 QMediaPlayer *myPlayer= new QMediaPlayer; //绝对路径 //设置媒体文件源 //myPlayer->setMedia(QUrl::fromLocalFile("E:/QTcode/111.mp3")); //设置音量 //myPlayer->setVolume(80); //播放音乐 //myPlayer->play(); //相对路径 //新建文件路径path QString path=QFileDialog::getOpenFileName(this,tr("选择一首歌曲"),"/","*.mp3"); //新建文件索引 QFileInfo fileInfo=QFileInfo(path); //读取文件名 QString fileName=fileInfo.baseName(); //在UI上显示文件名 ui->label->setText(fileName); //设置媒体文件源 myPlayer->setMedia(QUrl::fromLocalFile(path)); //设置音量 myPlayer->setVolume(60); //播放音乐 myPlayer->play(); }
QMediaPlayer是一个很强大的类不仅可以播放各种音乐,还可以播放视频
aa2e
注:使用QVideoWidget 需要在项目文件.pro加QT += multimediawidgets
头文件为默认
cpp文件如下:
#include "widget.h" #include "ui_widget.h" #include <QLayout> #include <QVideoWidget> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_clicked() { //建立布局 QHBoxLayout *m_layout= new QHBoxLayout(this); //建立QMediaPlayer 对象 QMediaPlayer *m_player = new QMediaPlayer(this); //设置媒体文件源 m_player->setMedia(QUrl::fromLocalFile(QString::fromLocal8Bit("E:/QTcode/222.mp4"))); //新建QVideoWidget 对象 QVideoWidget *m_videoW = new QVideoWidget(this); //将QVideoWidget 对象添加到布局 m_layout->addWidget(m_videoW); //设置页面布局 this->setLayout(m_layout); //设置媒体文件输出 m_player->setVideoOutput(m_videoW); //显示m_videoW m_videoW->show(); //播放视频 m_player->play(); }
这个项目的源码:
http://download.csdn.net/download/qq_40194498/10206873
相关文章推荐
- 关于Windows 8使用WMP播放音乐时WUDFHost跑CPU和硬盘的问题解决
- qt运用phonon播放音乐出现问题
- Window 下 Qt5 使用QMediaplayer 进行视频播放 流播放问题
- qt+ffmpeg 使用qAudioOutput播放声音,解决有沙沙的杂音问题。
- Qt实用技巧:使用QMediaPlayer和Windows自带组件播放swf、rmvb、mpg、mp4等视频文件
- 关于Windows 8使用WMP播放音乐时WUDFHost跑CPU和硬盘的问题解决
- Qt实用技巧:使用QMediaPlayer和Windows自带组件播放swf、rmvb、mpg、mp4等视频文件
- Android使用的webcview中带有音乐播放控件,在关闭或分享时处于界面不可见状态下,声音仍在播放的问题解决
- Qt 使用 phonon 播放 wav音乐文件 的 demo
- Window 下 Qt5 使用QMediaplayer 进行视频播放 流播放问题
- Android使用的webcview中带有音乐播放控件,在关闭或分享时处于界面不可见状态下,声音仍在播放的问题解决
- Window 下 Qt5 使用QMediaplayer 进行视频播放 流播放问题
- 解决Qt使用定时器播放视频过快的问题
- Qt实用技巧:使用QMediaPlayer播放mp4文件
- win mobile 5播放mp3音乐的方法(2)--libmad库的使用篇
- 使用Javascript控制视频或音乐连续播放
- 使用background 插入flash播放器播放音乐
- linux下播放音乐信息乱码问题
- 使用Everest下SMPlayer播放rmvb视频的一些问题
- directshow 使用vc 6通过智能连接播放多个节目时最后一个节目视频的问题