用c++写一个显示QMediaPlaylist下某项的当前目录
时间: 2023-11-27 07:04:29 浏览: 34
首先需要包含以下头文件:
```c++
#include <QApplication>
#include <QWidget>
#include <QMediaPlaylist>
#include <QMediaPlayer>
#include <QLabel>
```
然后在程序中创建一个QMediaPlaylist和一个QMediaPlayer:
```c++
QMediaPlaylist *playlist = new QMediaPlaylist();
playlist->addMedia(QUrl::fromLocalFile("/path/to/media1"));
playlist->addMedia(QUrl::fromLocalFile("/path/to/media2"));
playlist->setCurrentIndex(0);
QMediaPlayer *player = new QMediaPlayer();
player->setPlaylist(playlist);
```
接着,可以创建一个QLabel显示当前播放的媒体文件路径:
```c++
QLabel *label = new QLabel();
label->setText(playlist->currentMedia().canonicalUrl().toString());
```
最后,在媒体播放器状态改变时,更新QLabel的文本即可:
```c++
connect(player, &QMediaPlayer::stateChanged, [=](QMediaPlayer::State state){
if (state == QMediaPlayer::PlayingState) {
label->setText(playlist->currentMedia().canonicalUrl().toString());
}
});
```
完整代码如下:
```c++
#include <QApplication>
#include <QWidget>
#include <QMediaPlaylist>
#include <QMediaPlayer>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMediaPlaylist *playlist = new QMediaPlaylist();
playlist->addMedia(QUrl::fromLocalFile("/path/to/media1"));
playlist->addMedia(QUrl::fromLocalFile("/path/to/media2"));
playlist->setCurrentIndex(0);
QMediaPlayer *player = new QMediaPlayer();
player->setPlaylist(playlist);
QLabel *label = new QLabel();
label->setText(playlist->currentMedia().canonicalUrl().toString());
connect(player, &QMediaPlayer::stateChanged, [=](QMediaPlayer::State state){
if (state == QMediaPlayer::PlayingState) {
label->setText(playlist->currentMedia().canonicalUrl().toString());
}
});
QWidget window;
window.setLayout(new QVBoxLayout());
window.layout()->addWidget(label);
window.show();
return app.exec();
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)