# MyPlayer
1、新建项目myplayer,继承自QWidget,无需ui设计。
2、创建VideoWidget类,将继承自QWidget修改为继承自QVideoWidget,修改相关信息。
```
// 设置窗体尺寸:默认
// 设置调色板
// 设置窗口尺寸
```
3、在player类中播放VideoWidget,将QVideoWidget设为私有成员,通过namespce引入class QVideoWidget;
在player.cpp文件中new一个VideoWidget作为成员。
```
p.setColor(QPalette::Window, Qt::black); // 黑色未显现,但4中双击显现了
解决:
setAutoFillBackground(true);
```
4、VideoWidget事件:双击鼠标全屏或缩小、ESC缩小。
<img src="README/mouse.jpg" alt="image-20230830203820975" style="zoom: 80%;" />
5、添加播放器的音频和视频输出设备;
添加open和stop按钮,并绑定槽函数。
```
Qt5没有m_player->setAudioOutput(m_audioOutput); // 播放器的音频输出设备
Qt5没有m_player->setSource(QUrl::fromLocalFile(aFile));
解决:安装Qt6
```
6、创建PlayControls类;
定义停止按钮、信号;
引入头文件<QToolButton>、 <QStyle>,设置按钮并connect信号函数;
layer中加入PlayControls类;
<img src="README/stopControls.jpg" alt="image-20230831144506598" style="zoom:80%;" />
7、整体布局:
<img src="README/布局.jpg" alt="image-20230831155142148" style="zoom:80%;" />
添加各个按钮控件。
7、视频播放器进度条功能实现:
定义滑动条、时间标签,相应的槽函数和私有成员函数;
player.cpp中添加slider、connect槽函数;进度条标签;
connect槽函数
void durationChanged(qint64 duration); // 滑动条变化,时长相应变化
void positionChanged(qint64 progress);
8、调整布局:
// slider
QHBoxLayout *hLayout = new QHBoxLayout; // 水平布局
注释stop;
// controls
QBoxLayout *controlLayout = new QHBoxLayout;
PlayControls *controls = new PlayControls();
connect(controls, &PlayControls::stop, m_player, &QMediaPlayer::stop);
// connect(controls, &PlayControls::stop, this, &Player::stop); // 与上一行功能相同
// layout->addWidget(openButton);
// layout->addWidget(controls);
controlLayout->addWidget(openButton);
controlLayout->addWidget(controls);
9、 播放按钮功能:
```
void play();
void pause();
private slots:
void playClicked();
```
设置 QMediaPlayer::PlaybackState m_playerState = QMediaPlayer::StoppedState; // 播放状态:初始化为停止状态;
定义信号:
```
void PlayControls::playClicked()
{
switch (m_playerState) {
case QMediaPlayer::StoppedState:
case QMediaPlayer::PauseState:
emit play();
break;
case QMediaPlayer::PlayingState:
emit pause();
break;
default:
break;
}
}
```
在player.cpp中绑定槽函数;
在playcontrols.h中定义,并在player.cpp中绑定;
```
public slots:
void setState(QMediaPlayer::PlaybackState state);
connect(m_player, &QMediaPlayer::playbackStateChanged, controls, &PlayControls::setState);
```
10、增加列表栏:
```
QListWidget *m_playlistView = nullptr;
```
增加空格。
11、设置静音:
```
bool m_playerMuted = false;
void muteClicked();
void changeMuting(bool muting);
void PlayControls::setMuted(bool muted)
```
12、设置声音滑动条:
```
void onVolumeSliderValueChanged(); // 点击事件
void changeVolume(float volume);
float volume() const; // 计算音量
qreal linearVolume = QAudio::convertVolume(m_volumSlider->value() / qreal(100),
QAudio::LogarithmicVolumeScale,
QAudio::LinearVolumeScale);
// 将音量转换为百分数、将数值转换为线性的
```
在player.cpp中设置;
playcontrols添加setVolume;
player.cpp中controls初始化设置;
添加bool isMuted() const;。
13、播放速度:
```
qreal playbackRate() const;
void changeRate(qreal rate);
void updateRate();
```
在playcontrols中connect;
在play.cpp中设置。
14、全屏按钮:
定义按钮、槽函数;
15、选择音频输出设备:
组合框:
m_audioOutputCom = new QComboBox(this);
m_audioOutputCom->addItem(QString::fromUtf8("Default"), QVariant::fromValue(QAudioDevice()));
for (auto &deviceInfo : QMediaDevices::audioOutputs())
m_audioOutputCom->addItem(deviceInfo.description(), QVariant::fromValue(deviceInfo));
controlLayout->addWidget(m_audioOutputCom);
connect(m_audioOutputCom, QOverload<int>::of(&QComboBox::activated), this, &Player::audioOutputChanged);
16、播放列表:
重写open:
```
void Player::open()
{
QString curPath = QDir::homePath();
QString dlgTitle = "选择视频文件";
QString filter = "视频文件(*.mp4 *.avi);;所有文件(*.*)";
QStringList fileList = QFileDialog::getOpenFileNames(this, dlgTitle, curPath, filter);
if (fileList.count() < 0)
return;
for (int i = 0; i < fileList.count(); ++i)
{
QString aFile = fileList.at(i);
QFileInfo fileInfo(aFile);
QListWidgetItem *aItem = new QListWidgetItem(fileInfo.fileName());
aItem->setData(Qt::UserRole, QUrl::fromLocalFile(aFile));
m_playlistView->addItem(aItem);
}
if (m_player->playbackState() != QMediaPlayer::PlayingState)
{
m_playlistView->setCurrentRow(0); // 如果不是播放状态,则播放第一个视频
QUrl source = getUrlFromItem(m_playlistView->currentItem());
m_player->setSource(source);
}
// m_player->setSource(QUrl::fromLocalFile(aFile));
// m_player->play();
}
```
此时有列表仍不能播放,增加槽函数;
增加control类的两个信号,切换视频;并在player中接收信号;
> 从播放器列表开始未按照官方代码编写,没看太懂。
17、logo与打包
Qt--项目打包:https://blog.csdn.net/m0_68672255/article/details/130640779
Qt程序打包发布:https://zhuanlan.zhihu.com/p/621707309
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:LInux、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/EXE.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 75 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/421fe3cf48564128aca47ee460992edd_m0_63168877.jpg!1)
![avatar-vip](https://csdnimg.cn/release/downloadcmsfe/public/img/user-vip.1c89f3c5.png)
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)