日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Qt--音乐播放器

發(fā)布時(shí)間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt--音乐播放器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、功能介紹
  • 二、代碼
  • 三、運(yùn)行

一、功能介紹

能實(shí)現(xiàn)上一曲,下一曲
能實(shí)現(xiàn)列表點(diǎn)擊播放
能實(shí)現(xiàn)暫停開(kāi)始
能實(shí)現(xiàn)歌詞顯示(有問(wèn)題,先不改,后面再重寫(xiě))
原子的例程,功能沒(méi)有實(shí)現(xiàn)完(我后面再弄)

二、代碼

mainwindow.h

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QMediaPlayer> #include <QMediaPlaylist> #include <QPushButton> #include <QSlider> #include <QVBoxLayout> #include <QHBoxLayout> #include <QListWidget> #include <QLabel> #include <QSpacerItem> #include <QDebug> #include <QList> #include <QTextEdit>/* 媒體信息結(jié)構(gòu)體 */ struct MediaObjectInfo{QString fileName; // 用于保存歌曲文件名QString filePath; // 用于保存歌曲文件路徑 };class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow(); /* 屬性 */ private:QMediaPlayer *musicPlayer; // 媒體播放器,用于播放音樂(lè)QMediaPlaylist *mediaPlaylist; // 媒體列表QListWidget *musicListWidget; // 音樂(lè)列表QSlider *playProgressBar; // 播放進(jìn)度條QPushButton *pushButton[7]; // 音樂(lè)播放按鍵QVBoxLayout *vBoxLayout[3]; // 垂直布局QHBoxLayout *hBoxLayout[4]; // 水平布局QWidget *vWidget[3]; // 垂直容器QWidget *hWidget[4]; // 水平容器QLabel *label[4]; // 標(biāo)簽文本QWidget *listMask; // 用于遮罩QList<QString> lyricsTextList; // 歌詞文本列表QList<qint64> lyricsTimeList; // 歌詞時(shí)間列表QTextEdit *lyricsShowEdit; // 歌詞顯示文本框int lyricsShowEditScrollBarValue; // 歌詞顯示區(qū)域滾動(dòng)條的值/* 函數(shù) */ public:void initWidget(); // 初始化窗口void mediaPlayerInit(); // 媒體播放器初始化QVector<MediaObjectInfo> mediaObjectInfo; // 媒體信息存儲(chǔ)void scanSongs(); // 掃描歌曲bool readLyricFile(QString lyricPath); // 讀取歌詞文件bool analysisLyricsFile(QString line); // 解析歌詞文件void lyricsShow(); // 歌詞顯示// void resizeEvent(QResizeEvent *event); // 主窗體大小重設(shè)大小函數(shù)重寫(xiě)/* 槽函數(shù) */ private slots:void SltBtnPreviousClicked(); // 上一曲按鍵點(diǎn)擊void SltBtnPlayClicked(); // 播放按鍵點(diǎn)擊void SltBtnNextClicked(); // 下一曲按鍵點(diǎn)擊void SltListWidgetClicked(QListWidgetItem*); // 列表點(diǎn)擊void SltPlayProgressBarReleased(); // 播放進(jìn)度條松開(kāi)void SltMediaPlaylistCurrentIndexChanged(int); // 媒體列表項(xiàng)改變void SltMediaPlayerStateChanged(QMediaPlayer::State); // 媒體狀態(tài)改變void SltMusicPlayerDurationChanged(qint64); // 媒體總時(shí)間改變void SltMediaPlayerPositionChanged(qint64); // 媒體播放位置改變 }; #endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h" #include <QCoreApplication> #include <QFileInfoList> #include <QDir> #include <QTextCodec> #include <QScrollBar>QString musicPath = "/home/luatao/qt/05_musicplayer/myMusic";MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {/* 初始化窗口 */initWidget();/* 媒體播放器初始化 */mediaPlayerInit();/* 掃描歌曲 */scanSongs();/* 按鍵信號(hào)槽連接 */connect(pushButton[0], SIGNAL(clicked()), this, SLOT(SltBtnPreviousClicked())); // 上一曲connect(pushButton[1], SIGNAL(clicked()), this, SLOT(SltBtnPlayClicked())); // 播放connect(pushButton[2], SIGNAL(clicked()), this, SLOT(SltBtnNextClicked())); // 下一曲/* 列表信號(hào)槽連接 */connect(musicListWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(SltListWidgetClicked(QListWidgetItem*)));/* 進(jìn)度條信號(hào)槽連接 */connect(playProgressBar,SIGNAL(sliderReleased()), this, SLOT(SltPlayProgressBarReleased()));/* 媒體信號(hào)槽連接 */connect(mediaPlaylist,SIGNAL(currentIndexChanged(int)), this, SLOT(SltMediaPlaylistCurrentIndexChanged(int)));connect(musicPlayer,SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(SltMediaPlayerStateChanged(QMediaPlayer::State)));connect(musicPlayer,SIGNAL(durationChanged(qint64)), this, SLOT(SltMusicPlayerDurationChanged(qint64)));connect(musicPlayer,SIGNAL(positionChanged(qint64)), this, SLOT(SltMediaPlayerPositionChanged(qint64)));/* 失去焦點(diǎn) */this->setFocus();}MainWindow::~MainWindow() { }/*** @brief MainWindow::initWidget* 初始化窗口*/ void MainWindow::initWidget() {this->setGeometry(0,0,800,480);QPalette pal; /* QPalette 對(duì)話框或控件的調(diào)色板 *//* 按鍵 初始化 */for(int i = 0; i< 7;i++)pushButton[i] = new QPushButton();/* 設(shè)置對(duì)象名稱 */pushButton[0]->setObjectName("btn_previous"); // 上一曲pushButton[1]->setObjectName("btn_play"); // 播放pushButton[2]->setObjectName("btn_next"); // 下一曲pushButton[3]->setObjectName("btn_favorite"); // 喜歡pushButton[4]->setObjectName("btn_mode"); // 模式pushButton[5]->setObjectName("btn_menu"); // 菜單pushButton[6]->setObjectName("btn_volume"); // 音量/* 設(shè)置按鍵屬性 該btn有可選擇的屬性 點(diǎn)擊一下置為選擇狀態(tài) */pushButton[1]->setCheckable(true);pushButton[3]->setCheckable(true);/* 標(biāo)簽初始化 */for(int i = 0; i< 4; i++)label[i] = new QLabel();/* 容器初始化 */for(int i = 0; i< 3; i++){/* 垂直容器 */vWidget[i] = new QWidget();vWidget[i]->setAutoFillBackground(true); // 設(shè)置自動(dòng)填充背景/* 垂直布局 */vBoxLayout[i] = new QVBoxLayout();}for(int i = 0; i< 4; i++){/* 水平容器 */hWidget[i] = new QWidget();hWidget[i]->setAutoFillBackground(true);/* 水平布局 */hBoxLayout[i] = new QHBoxLayout();}/* 播放進(jìn)度條 */playProgressBar = new QSlider(Qt::Horizontal); // 水平方向進(jìn)度條playProgressBar->setMinimumSize(300,15); // 最小窗口值 也就是尺寸大小 寬300 高15playProgressBar->setMaximumHeight(15);playProgressBar->setObjectName("playProgressBar");/* 音樂(lè)列表 */musicListWidget = new QListWidget();musicListWidget->setObjectName("musicListWidget");musicListWidget->resize(310,265); /* 設(shè)置大小 */musicListWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // 一直屏蔽垂直滾動(dòng)條musicListWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // 屏蔽水平滾動(dòng)條/* 列表遮罩 */listMask = new QWidget(musicListWidget); // 在窗口界面添加音樂(lè)列表listMask->setMinimumSize(310,50);listMask->setMinimumHeight(50);listMask->setObjectName("listMask");listMask->setGeometry(0,musicListWidget->height() - 50, 310, 50); // 設(shè)置串口的位置和大小/* 總體布局 分成左右兩個(gè)垂直布局 */vWidget[0]->setMinimumSize(310, 480); // 窗口vWidget[0]->setMaximumWidth(310);vWidget[1]->setMinimumSize(320, 480);/* 創(chuàng)建空白區(qū)域 大小為70,480 空白區(qū)不能小于Minimum 不能大于Maximum*/QSpacerItem *hSpacer0 = new QSpacerItem(70, 480, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *hSpacer1 = new QSpacerItem(65, 480, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *hSpacer2 = new QSpacerItem(60, 480, QSizePolicy::Minimum, QSizePolicy::Maximum);// vWidget[0]->setStyleSheet("background-color:black;"); // 設(shè)置窗口的背景 調(diào)試使用 // vWidget[1]->setStyleSheet("background-color:red;");hBoxLayout[0]->addSpacerItem(hSpacer0);hBoxLayout[0]->addWidget(vWidget[0]);hBoxLayout[0]->addSpacerItem(hSpacer1);hBoxLayout[0]->addWidget(vWidget[1]);hBoxLayout[0]->addSpacerItem(hSpacer2);/* setContentsMargins 設(shè)置左側(cè)、頂部、右側(cè)、底部邊距*/hBoxLayout[0]->setContentsMargins(0,0,0,0);hWidget[0]->setLayout(hBoxLayout[0]); // hWidget[0]是主窗口setCentralWidget(hWidget[0]); // 設(shè)置中間顯示/*左邊的布局 添加了音樂(lè)列表 和一個(gè)水平布局 */musicListWidget->setMinimumSize(310, 265);hWidget[1]->setMinimumSize(310, 80);hWidget[1]->setMaximumHeight(80);label[0]->setMinimumSize(310, 95);label[0]->setMaximumHeight(95);QSpacerItem *vSpacer0 = new QSpacerItem(310, 10, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *vSpacer1 = new QSpacerItem(310, 30, QSizePolicy::Minimum, QSizePolicy::Maximum);//label[0]->setText("你好");vBoxLayout[0]->addWidget(label[0]);vBoxLayout[0]->addWidget(musicListWidget);vBoxLayout[0]->addSpacerItem(vSpacer0);vBoxLayout[0]->addWidget(hWidget[1]);vBoxLayout[0]->addSpacerItem(vSpacer1);vBoxLayout[0]->setContentsMargins(0,0,0,0);vWidget[0]->setLayout(vBoxLayout[0]);/* 左邊的水平布局 添加了3個(gè)按鍵 */for(int i = 0; i< 3; i++)pushButton[i]->setMinimumSize(80,80);/* Expanding 可自由伸縮 */QSpacerItem *hSpacer3 = new QSpacerItem(40, 80, QSizePolicy::Expanding, QSizePolicy::Expanding);QSpacerItem *hSpacer4 = new QSpacerItem(40, 80, QSizePolicy::Expanding, QSizePolicy::Expanding);hBoxLayout[1]->addWidget(pushButton[0]);hBoxLayout[1]->addSpacerItem(hSpacer3);hBoxLayout[1]->addWidget(pushButton[1]);hBoxLayout[1]->addSpacerItem(hSpacer4);hBoxLayout[1]->addWidget(pushButton[2]);hBoxLayout[1]->setContentsMargins(0,0,0,0);hWidget[1]->setLayout(hBoxLayout[1]);/* 右邊的垂直布局 添加了label 滾動(dòng)條 和一個(gè)垂直布局 */QSpacerItem *vSpacer2 = new QSpacerItem(320, 40, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *vSpacer3 = new QSpacerItem(320, 20, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *vSpacer4 = new QSpacerItem(320, 30, QSizePolicy::Minimum, QSizePolicy::Maximum);// label[1]->setMinimumSize(320, 320); // QImage Image; // Image.load(":/images/cd.png"); // QPixmap pixmap = QPixmap::fromImage(Image);// int width = 320, height = 320; // QPixmap fitpixmap = pixmap.scaled(width,height,Qt::IgnoreAspectRatio,Qt::SmoothTransformation); // label[1]->setPixmap(fitpixmap); // label[1]->setAlignment(Qt::AlignCenter); // 居中對(duì)齊lyricsShowEdit = new QTextEdit(this); // 文本區(qū)域lyricsShowEdit->setMinimumSize(320,320);lyricsShowEdit->setStyleSheet("background-color:transparent;color:red"); // 設(shè)置背景為黑色lyricsShowEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);// 隱藏垂直滾動(dòng)條lyricsShowEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);// 隱藏水平滾動(dòng)條lyricsShowEdit->setFontPointSize(16); // 設(shè)置字體大小vWidget[2]->setMinimumSize(300, 80);vWidget[2]->setMaximumHeight(80);vBoxLayout[1]->addSpacerItem(vSpacer2);// vBoxLayout[1]->addWidget(label[1]);vBoxLayout[1]->addWidget(lyricsShowEdit);vBoxLayout[1]->addSpacerItem(vSpacer3);vBoxLayout[1]->addWidget(playProgressBar);vBoxLayout[1]->addWidget(vWidget[2]);vBoxLayout[1]->addSpacerItem(vSpacer4);vBoxLayout[1]->setContentsMargins(0,0,0,0);vWidget[1]->setLayout(vBoxLayout[1]);/* 右邊的垂直布局 添加了兩個(gè)水平布局 */QSpacerItem *vSpacer5 = new QSpacerItem(310, 10, QSizePolicy::Minimum, QSizePolicy::Maximum);hWidget[2]->setMinimumSize(320, 20);hWidget[3]->setMinimumSize(320, 60);vBoxLayout[2]->addWidget(hWidget[2]);vBoxLayout[2]->addSpacerItem(vSpacer5);vBoxLayout[2]->addWidget(hWidget[3]);vBoxLayout[2]->setContentsMargins(0,0,0,0);vWidget[2]->setLayout(vBoxLayout[2]);/* 右邊的一個(gè)水平布局 添加了兩個(gè)label 表示歌曲播放的時(shí)間 */QFont font;font.setPixelSize(10);/* 設(shè)置文本標(biāo)簽 */label[0]->setText("luatao Music!");label[2]->setText("00:00");label[3]->setText("00:00");label[2]->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);label[3]->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);label[2]->setAlignment(Qt::AlignRight); // 右對(duì)齊label[3]->setAlignment(Qt::AlignLeft); //label[2]->setFont(font);label[3]->setFont(font);pal.setColor(QPalette::WindowText, Qt::white); // 設(shè)置文字的顏色白色label[0]->setPalette(pal);label[2]->setPalette(pal);label[3]->setPalette(pal);hBoxLayout[2]->addWidget(label[2]);hBoxLayout[2]->addWidget(label[3]);hBoxLayout[2]->setContentsMargins(0,0,0,0);hWidget[2]->setLayout(hBoxLayout[2]);/* 右邊的一個(gè)水平布局 添加4個(gè)按鍵 */QSpacerItem *hSpacer5 = new QSpacerItem(0, 60, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *hSpacer6 = new QSpacerItem(80, 60, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *hSpacer7 = new QSpacerItem(80, 60, QSizePolicy::Minimum, QSizePolicy::Maximum);QSpacerItem *hSpacer8 = new QSpacerItem(80, 60, QSizePolicy::Minimum, QSizePolicy::Maximum);for(int i = 3; i < 7; i++){pushButton[i]->setMinimumSize(25, 25);pushButton[i]->setMaximumSize(25, 25);}hBoxLayout[3]->addSpacerItem(hSpacer5);hBoxLayout[3]->addWidget(pushButton[3]);hBoxLayout[3]->addSpacerItem(hSpacer6);hBoxLayout[3]->addWidget(pushButton[4]);hBoxLayout[3]->addSpacerItem(hSpacer7);hBoxLayout[3]->addWidget(pushButton[5]);hBoxLayout[3]->addSpacerItem(hSpacer8);hBoxLayout[3]->addWidget(pushButton[6]);hBoxLayout[3]->setContentsMargins(0,0,0,0);hBoxLayout[3]->setAlignment(Qt::AlignCenter);hWidget[3]->setLayout(hBoxLayout[3]); }/*** @brief MainWindow::mediaPlayerInit* 媒體播放器初始化*/ void MainWindow::mediaPlayerInit() {musicPlayer = new QMediaPlayer(this); // 媒體播放器mediaPlaylist = new QMediaPlaylist(this); // 媒體列表/* 清空播放器列表 */mediaPlaylist->clear();/* 設(shè)置音樂(lè)播放器的列表為mediaplaylist */musicPlayer->setPlaylist(mediaPlaylist);/* 設(shè)置播放模式,loop是列循環(huán) */mediaPlaylist->setPlaybackMode(QMediaPlaylist::Loop); }/*** @brief MainWindow::scanSongs* 掃描歌曲*/ void MainWindow::scanSongs() {// QDir dir(QCoreApplication::applicationDirPath() + "/myMusic"); // 文件目錄QDir dir(musicPath); // 文件目錄//qDebug() << QCoreApplication::applicationDirPath() + "/myMusic" << endl;QDir dirbsolutePath(dir.absolutePath()); // 絕對(duì)路徑/* 如果目錄存在 */if(dirbsolutePath.exists()){/* 定義過(guò)濾器 */QStringList filter;/* 篩選所有包含.mp3后綴的文件 */filter << "*.mp3";/* 獲取該目錄下所有的文件 */QFileInfoList files = dirbsolutePath.entryInfoList(filter, QDir::Files);//qDebug()<<files.count()<<endl;/* 遍歷 */for(int i = 0; i< files.count(); i++){MediaObjectInfo info;/* 使用utf-8編碼 */QString fileName = QString::fromUtf8(files.at(i).fileName().replace(".mp3","").toUtf8().data()); // 獲取文件名 并且去掉后綴// info.fileName = fileName + "\n" + fileName.split("-").at(1); // 這里格式化顯示的歌曲名+ 作者info.fileName = fileName; // 這里格式化顯示的歌曲名info.filePath = QString::fromUtf8(files.at(i).filePath().toUtf8().data()); // 獲取文件名//qDebug() << fileName << endl;/* 媒體列表添加歌曲 */if(mediaPlaylist->addMedia(QUrl::fromLocalFile(info.filePath))){/* 添加到容器數(shù)組里儲(chǔ)存 */mediaObjectInfo.append(info);/* 添加歌曲名至列表 */musicListWidget->addItem(info.fileName);// qDebug() << info.fileName << endl;}else{qDebug() << "Error number:" << mediaPlaylist->error() << endl;}}}elseqDebug() << "path not exist!" << endl; // 路徑不存在 }/*** @brief MainWindow::btn_previous_clicked* 上一曲點(diǎn)擊槽函數(shù)*/ void MainWindow::SltBtnPreviousClicked() {musicPlayer->stop(); // 停止當(dāng)前音樂(lè)int count = mediaPlaylist->mediaCount(); // 判斷音樂(lè)的個(gè)數(shù)if(count == 0)return ;/* 跳轉(zhuǎn)到列表的上一個(gè) */mediaPlaylist->previous();musicPlayer->play(); // 播放音樂(lè) }/* 播放音樂(lè)點(diǎn)擊槽函數(shù) */ void MainWindow::SltBtnPlayClicked() {int state = musicPlayer->state(); // 獲取播放器的狀態(tài)switch(state){case QMediaPlayer::StoppedState:/* 播放 */musicPlayer->play();// qDebug() << "StoppedState" << endl;break;case QMediaPlayer::PlayingState:/* 暫停 */musicPlayer->pause();// qDebug() << "PlayingState" << endl;break;case QMediaPlayer::PausedState:/* 播放 */musicPlayer->play();// qDebug() << "PausedState" << endl;break;} }/* 下一曲點(diǎn)擊槽函數(shù) */ void MainWindow::SltBtnNextClicked() {musicPlayer->stop(); // 停止播放int count = mediaPlaylist->mediaCount(); // 判斷音樂(lè)的個(gè)數(shù)if(count == 0)return ;/* 跳轉(zhuǎn)到列表的下一個(gè) */mediaPlaylist->next();musicPlayer->play(); }/*** @brief MainWindow::SltListWidgetClicked* 歌曲列表點(diǎn)擊 播放此項(xiàng)* @param item*/ void MainWindow::SltListWidgetClicked(QListWidgetItem *item) {musicPlayer->stop();mediaPlaylist->setCurrentIndex(musicListWidget->row(item)); // 播放點(diǎn)擊的音樂(lè)musicPlayer->play(); }/*** @brief MainWindow::durationSliderReleased* 根據(jù)滑條設(shè)置媒體播放的位置 ,也就是通過(guò)進(jìn)度條控制播放的位置*/ void MainWindow::SltPlayProgressBarReleased() {/* 設(shè)置媒體播放的位置 */musicPlayer->setPosition(playProgressBar->value() * 1000); // ms為單位 }/*** @brief MainWindow::SltMediaPlaylistCurrentIndexChanged* 媒體列表當(dāng)前下標(biāo)改變* @param index*/ void MainWindow::SltMediaPlaylistCurrentIndexChanged(int index) {if(index == -1)return ;/* 設(shè)置列表正在播放的項(xiàng) */musicListWidget->setCurrentRow(index); // 當(dāng)上一曲或者下一曲的時(shí)候歌曲列表顯示出來(lái) }/*** @brief MainWindow::SltMediaPlayerStateChanged* 媒體播放的狀態(tài)改變* @param state*/ void MainWindow::SltMediaPlayerStateChanged(QMediaPlayer::State state) {switch (state) {case QMediaPlayer::StoppedState:pushButton[1]->setChecked(false); // 播放按鍵的狀態(tài)為不可選// qDebug() << "StoppedState1" << endl;break;case QMediaPlayer::PlayingState: // 正在播放pushButton[1]->setChecked(true);// qDebug() << "PlayingState1" << endl;break;case QMediaPlayer::PausedState:pushButton[1]->setChecked(false);// qDebug() << "PausedState1" << endl;break;} }/*** @brief MainWindow::SltMusicPlayerDurationChanged* 媒體播放長(zhǎng)度發(fā)生變化 顯示時(shí)間標(biāo)簽改變* @param duration*/ void MainWindow::SltMusicPlayerDurationChanged(qint64 duration) {playProgressBar->setRange(0, duration / 1000); // duration為ms 進(jìn)度條設(shè)置顯示int second = duration / 1000; // 秒int minute = second / 60; // 分second %= 60; // 剩下的秒QString mediaDuration; // 媒體的時(shí)間mediaDuration.clear();if(minute >= 10)mediaDuration = QString::number(minute, 10);elsemediaDuration = "0" + QString::number(minute, 10);if(second >= 10)mediaDuration = mediaDuration + ":" + QString::number(second, 10);elsemediaDuration = mediaDuration + "0" + QString::number(second, 10);/* 顯示媒體總長(zhǎng)度時(shí)間 */label[3]->setText(mediaDuration);/* 加載歌詞 *//* 獲取此歌曲的歌詞文件 */int index = mediaPlaylist->currentIndex(); // 獲取當(dāng)前媒體列表的位置QListWidgetItem *item = musicListWidget->item(index); // 從歌曲列表中找到此歌曲項(xiàng)QString musicName = item->text().left(item->text().lastIndexOf(".")); // 獲取.左邊的數(shù)據(jù)if(!readLyricFile(musicPath + "/" + musicName + ".lrc")){ // 打開(kāi)這個(gè)歌詞文件qDebug() << "未檢測(cè)到歌詞文件" <<endl;}lyricsShow(); // 顯示歌詞 }/*** @brief MainWindow::SltMediaPlayerPositionChanged* 媒體播放位置顯示 一直更新 顯示當(dāng)前播放位置* @param position*/ void MainWindow::SltMediaPlayerPositionChanged(qint64 position) {if(!playProgressBar->isSliderDown()) // 如果滑塊沒(méi)有按下playProgressBar->setValue(position / 1000); // 設(shè)置滑塊的位置int second = position / 1000; // 秒int minute = second / 60;second %= 60;QString mediaPosition;mediaPosition.clear();if(minute >= 10)mediaPosition = QString::number(minute, 10);elsemediaPosition = "0" + QString::number(minute, 10);if(second >= 10)mediaPosition = mediaPosition + ":" + QString::number(second, 10);elsemediaPosition = mediaPosition + ":0" + QString::number(second, 10);/* 顯示當(dāng)前播放的時(shí)間 */label[2]->setText(mediaPosition);/* 下面不對(duì) ,應(yīng)該按時(shí)間來(lái)計(jì)算 如果改變滾動(dòng)條的值, 下面將不再有意義 *//* 顯示歌詞 *//* position:是當(dāng)前播放的時(shí)間 單位為ms 判斷這個(gè)時(shí)間和lyricsTimeList的時(shí)間的大小如果position == lyricsTimeList 那么就顯示這一句歌詞 */int index = 0;for(qint64 mstime:lyricsTimeList){/*"[00:00.00]聽(tīng)雪戀歌 - CH2""[00:13.30]詞:呂泓瑾""[00:26.61]曲:呂泓瑾"*/index ++; // 記錄當(dāng)前項(xiàng)的下標(biāo)// qDebug() << "mstime" << mstime << endl; // 輸出時(shí)間// qDebug() << "position / 10 * 10" << position / 1000 * 1000 << endl; // 輸出時(shí)間if(mstime / 1000 * 1000 == (position / 1000 * 1000)){// qDebug() << "pipei"<< endl; // 輸出時(shí)間/* 播放當(dāng)前歌詞 歌詞往上移動(dòng)一行 */int value = lyricsShowEdit->verticalScrollBar()->value(); // 獲取滾動(dòng)條的值int count = lyricsTextList.count(); // 獲取歌詞總共的行數(shù)int accumulationValue = lyricsShowEditScrollBarValue / count + 1; // 每一行歌曲占的滾動(dòng)條的值// qDebug() << "lyricsShowEditScrollBarValue" << lyricsShowEditScrollBarValue <<endl;// qDebug() << "count" << count <<endl;// qDebug() << "accumulationValue" << accumulationValue <<endl;lyricsShowEdit->verticalScrollBar()->setValue(value + accumulationValue * index); // 移動(dòng)break;}} }/*** @brief MainWindow::readLyricFile* 讀取歌詞文件* @param lyricPath 歌詞文件路徑*/ bool MainWindow::readLyricFile(QString lyricPath) {lyricsTextList.clear();lyricsTimeList.clear(); // 清空列表QFile file(lyricPath);if(!file.exists()){ // 文件路徑不存在lyricsTextList.push_back("未檢測(cè)到歌詞文件"); // 添加到歌詞文本列表return false;}file.open(QIODevice::ReadOnly | QIODevice::Text); // 只讀方式打開(kāi)文件// QTextCodec *utf8 = QTextCodec::codecForName("UTF-8"); // QTextCodec::setCodecForLocale(utf8); // QTextCodec* gbk = QTextCodec::codecForName("gbk");QTextStream in(&file);in.setCodec(QTextCodec::codecForName("GBK"));//讓文件以UTF-8的方式譯碼。QString line = "";while((line = in.readLine()) > 0){ // 讀取一行數(shù)據(jù)/* gbk轉(zhuǎn)utf-8 */ // //1. gbk to unicode // QString strUnicode = gbk->toUnicode(line.toLocal8Bit().data()); // //2. unicode -> utf-8 // QByteArray utf8_bytes = utf8->fromUnicode(strUnicode);qDebug() << line << endl;analysisLyricsFile(line);//解析歌詞文件}file.close(); // 關(guān)閉文件return true; }/*** @brief analysisLyricsFile* 解析歌詞文件 如果時(shí)間精確到s的話會(huì)有重復(fù) 這里精確到s后面1位* @param line* @return*/ bool MainWindow::analysisLyricsFile(QString line) {if(line == NULL || line.isEmpty()){ // 一行數(shù)據(jù)為空qDebug() << "this line is empty!";return false;}/* \[(\d+)?:(\d+)?\.(\d+)?\](.*)?* [(數(shù)字)?:(數(shù)字)?.(數(shù)字)](.*)?*/QRegularExpression regularExpression("\\[(\\d+)?:(\\d+)?\\.(\\d+)?\\](.*)?"); // \[(\d+)?:(\d+)?(\.\d+)?\](.*)?QRegularExpressionMatch match;match = regularExpression.match(line, 0); // 從第0個(gè)字符開(kāi)始匹配if(match.hasMatch()) { // 數(shù)據(jù)匹配成功 // qDebug() << match.captured(3).toInt() * 10 << ' ';qint64 totalTime = match.captured(1).toInt() * 60000 + match.captured(2).toInt() * 1000 + match.captured(3).toInt() * 10; // 轉(zhuǎn)化為ms /* 計(jì)算該時(shí)間點(diǎn)毫秒數(shù) */QString currentText =QString::fromStdString(match.captured(4).toStdString()); // 獲取歌詞文本lyricsTextList.push_back(currentText); // 將當(dāng)前文本添加到文本列表lyricsTimeList.push_back(totalTime); // 將當(dāng)前時(shí)間添加到時(shí)間列表return true;}return false; }/*** @brief MainWindow::lyricsShow* 歌詞顯示*/ void MainWindow::lyricsShow() {lyricsShowEdit->clear(); // 加載之前需要先清除文本區(qū)域的內(nèi)容for(QString str:lyricsTextList){ // 遍歷lyricsShowEdit->append(str); // 顯示//qDebug() << str << endl;}/* 獲取滾動(dòng)條的最大值 */lyricsShowEditScrollBarValue = lyricsShowEdit->verticalScrollBar()->value();qDebug() << "lyricsShowEditScrollBarValue" << lyricsShowEditScrollBarValue << endl;/* 返回到最上面 */lyricsShowEdit->verticalScrollBar()->setValue(0); // 移動(dòng) }///* 重新繪制窗口大小 */ //void MainWindow::resizeEvent(QResizeEvent *event) //{ // Q_UNUSED(event); // listMask->setGeometry(0,listWidget->height() - 50, 310, 50); //}

main.cpp

#include "mainwindow.h"#include <QApplication> #include <QFile>int main(int argc, char *argv[]) {QApplication a(argc, argv);/* 指定文件 */QFile file(":/style.qss");/* 判斷文件是否存在 */if(file.exists()){/* 以只讀的方式打開(kāi)文件 */file.open(QFile::ReadOnly);/* 以字符串的方式保存讀出的結(jié)果 */QString styleSheet = QLatin1String(file.readAll());/* 設(shè)置全局樣式 */qApp->setStyleSheet(styleSheet);/* 關(guān)閉文件 */file.close();}MainWindow w;w.show();return a.exec(); }

style.qss

QWidget{background: "#25242a" /* 設(shè)置窗體背景顏色 */ }QWidget#listMask {border-image: url(:/images/mask.png);background-color: transparent; }QListWidget#musicListWidget {color:white;font-size: 15px;border:none; }QListWidget#musicListWidget:item:active {background: transparent; }QListWidget#musicListWidget:item {background: transparent;height:60; }QListWidget#musicListWidget:item:selected {color:#5edcf3;background: transparent; }QListWidget#musicListWidget:item:hover {background: transparent;color:#5edcf3;border:none; }/* 設(shè)置按鍵的圖片 */QPushButton#btn_play {border-image:url(:/images/btn_play1.png); }QPushButton#btn_play:hover {border-image:url(:/images/btn_play2.png); }QPushButton#btn_play:checked {border-image:url(:/images/btn_pause1.png); }QPushButton#btn_play:checked:hover {border-image:url(:/images/btn_pause2.png); }QPushButton#btn_previous {border-image:url(:/images/btn_previous1.png); }QPushButton#btn_previous:hover {border-image:url(:/images/btn_previous2.png); }QPushButton#btn_next {border-image:url(:/images/btn_next1.png); }QPushButton#btn_next:hover {border-image:url(:/images/btn_next2.png); }QPushButton#btn_favorite {border-image:url(:/images/btn_favorite_no.png); }QPushButton#btn_favorite:checked {border-image:url(:/images/btn_favorite_yes.png); }QPushButton#btn_menu {border-image:url(:/images/btn_menu1.png); }QPushButton#btn_menu:hover {border-image:url(:/images/btn_menu2.png); }QPushButton#btn_mode { border-image:url(:/images/btn_listcircle1.png); }QPushButton#btn_mode:hover {border-image:url(:/images/btn_listcircle2.png); }QPushButton#btn_mode {border-image:url(:/images/btn_listcircle1.png); }QPushButton#btn_mode:hover { border-image:url(:/images/btn_listcircle2.png); }QPushButton#btn_volume {border-image:url(:/images/btn_volume1.png); }QPushButton#btn_volume:hover {border-image:url(:/images/btn_volume2.png); }QSlider#playProgressBar:handle:horizontal {border-image:url(:/images/handle.png); }QSlider#playProgressBar:sub-page:horizontal {border-image:url(:/images/sub-page.png); }

三、運(yùn)行


總結(jié)

以上是生活随笔為你收集整理的Qt--音乐播放器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产高清成人在线 | av资源中文字幕 | 91爱看片| 亚洲欧洲av| 日韩欧美在线第一页 | 国产精品女 | 97在线观看免费观看高清 | 日韩一区二区三区免费电影 | 亚洲另类视频 | 日韩免费在线观看视频 | 日韩理论电影网 | 激情伊人| 久久99精品国产91久久来源 | 日韩免费播放 | 日韩中文字幕免费在线播放 | 久久国产精品影片 | 国产高清视频在线观看 | 中文字幕第一页在线 | 操碰av| 久久国产精品99久久久久久丝袜 | 麻豆精品视频 | 国产高清无线码2021 | 久久一及片 | 国产白浆视频 | 五月花激情 | 亚洲国产一二三 | 免费一级片观看 | 日本久久久久久科技有限公司 | 免费看黄网站在线 | 色偷偷男人的天堂av | 中文字幕乱码亚洲精品一区 | 又爽又黄又刺激的视频 | 黄色网址中文字幕 | 色婷婷成人网 | 99精品在线视频观看 | 夜夜躁天天躁很躁波 | 狠狠色综合欧美激情 | 91天堂在线观看 | 精品国产亚洲一区二区麻豆 | 国精产品永久999 | 在线直播av | 国产亚洲精品久久19p | 久久99国产精品二区护士 | 国产高清久久久 | 亚洲精品福利视频 | 国产精品原创 | 天堂激情网 | 婷婷日日| 免费观看日韩av | 国产手机视频 | 国产精品毛片完整版 | 国产第一福利网 | 亚洲精品玖玖玖av在线看 | 在线黄频 | 婷婷色吧 | 麻豆免费在线播放 | 一本一本久久a久久精品综合小说 | 精品久久久久久国产 | 久久这里只精品 | 五月亚洲综合 | 国产精品福利无圣光在线一区 | 国产理论在线 | 亚洲免费一级电影 | 中文字幕成人 | 中文字幕一区二区三区乱码在线 | 欧美一级大片在线观看 | 欧美性色网站 | 在线免费观看视频a | 午夜av免费 | 激情中文字幕 | 欧美午夜视频在线 | 一区二区在线不卡 | 国产夫妻性生活自拍 | 在线免费观看国产 | 黄色三级在线观看 | 超碰在线日韩 | 日本精品一区二区三区在线播放视频 | 香蕉视频网站在线观看 | av在线播放免费 | 麻豆国产网站入口 | 久黄色| 久草资源免费 | 激情欧美日韩一区二区 | 久久精品五月 | 日韩av在线一区二区 | 在线观看中文字幕视频 | 欧美最猛性xxxxx免费 | 国产xxxx做受性欧美88 | 99精品国产视频 | 久久久久福利视频 | 午夜精品久久久久久久99 | 色综合激情网 | 成人毛片一区二区三区 | 在线中文字幕视频 | 国产午夜精品福利视频 | 日本在线观看一区二区 | 欧美日本啪啪无遮挡网站 | 亚洲 综合 精品 | 国产久草在线观看 | 激情综合网天天干 | 成人欧美一区二区三区在线观看 | 午夜精品久久久久久 | 99久久久久成人国产免费 | 99热这里是精品 | 日韩理论视频 | 人人舔人人爽 | 亚洲精区二区三区四区麻豆 | 成年人网站免费在线观看 | 日韩国产精品久久久久久亚洲 | 97精品久久人人爽人人爽 | 免费观看久久久 | 亚洲精品午夜久久久久久久 | 偷拍视频一区 | 国产情侣一区 | 国产精品一区二区三区99 | 免费在线观看不卡av | 成人小视频在线观看免费 | 激情五月综合 | 九九99视频 | 日韩三区在线 | 九九久久视频 | 成人作爱视频 | 午夜视频福利 | 在线视频一区观看 | 天天搞天天干天天色 | 91精品1区| 亚洲视频免费在线观看 | 欧美久久99 | 日韩精品一区电影 | 国产第一二区 | 日韩 国产 | 天天干天天操天天爱 | 毛片在线播放网址 | 免费av免费观看 | 国产精品久久一 | 久草在线手机观看 | 人人干人人模 | 婷婷在线视频 | 这里只有精品视频在线 | 亚洲激精日韩激精欧美精品 | 国产一区二区精品久久91 | 在线小视频你懂的 | 精品在线不卡 | 亚洲精品五月 | 美女网站视频久久 | 丁香六月av | 97av色| 亚洲 欧美 变态 国产 另类 | 日韩久久久久久久久久 | 在线免费色| 亚洲成a人片77777kkkk1在线观看 | 麻花天美星空视频 | 久久综合国产伦精品免费 | 国产一级片直播 | 日韩最新av在线 | 免费观看9x视频网站在线观看 | 亚洲国产精品久久久久 | 99精品99 | 久久久久久久免费观看 | 国产亚洲精品无 | 美女黄网久久 | 99国产精品免费网站 | 国产一区免费 | 久草免费色站 | 国产精品系列在线观看 | 男女视频久久久 | 日日爽天天爽 | 夜夜躁狠狠躁日日躁视频黑人 | 丁香激情五月 | 97视频在线播放 | 天天透天天插 | 亚洲欧美日本国产 | 99欧美视频 | 国产日韩欧美视频在线观看 | 碰超在线97人人 | 久久久伊人网 | 国产日韩精品一区二区在线观看播放 | 亚洲日韩欧美一区二区在线 | 五月亚洲综合 | 日本aa在线 | 日本丶国产丶欧美色综合 | 日韩欧美一区二区三区在线 | 黄色av一区二区 | 中文乱码视频在线观看 | 久久新视频 | 亚洲精品免费观看视频 | 国产精品12 | 久久国产精品色婷婷 | 日本高清中文字幕有码在线 | 日韩av影片在线观看 | 成人91视频 | 日日摸日日 | 四虎国产精品永久在线国在线 | 亚洲美女免费视频 | 日韩专区av| 国产成人精品一区二区 | www婷婷| 成 人 黄 色 视频 免费观看 | 久久涩视频 | 91色网址 | 国产精品a成v人在线播放 | 色欧美成人精品a∨在线观看 | 亚洲欧美日韩一二三区 | 亚洲国产精品视频在线观看 | 成人免费看视频 | 日韩三级免费 | 日韩免费成人 | 91日韩在线播放 | 久久久久久毛片 | 中文字幕一区二区三区久久 | 国产一线二线三线在线观看 | 高清av免费观看 | 五月婷婷免费 | 五月婷婷天堂 | 欧美日韩精品电影 | 成人中心免费视频 | 美女激情影院 | 99资源网| 在线播放91 | 免费看的黄色的网站 | 日韩欧美电影在线观看 | 在线中文字幕观看 | 久久国际影院 | 丁香婷婷激情国产高清秒播 | 91最新网址 | 婷婷精品国产欧美精品亚洲人人爽 | 精品99在线视频 | 中文字幕资源网 国产 | 亚洲清纯国产 | 91精品国产欧美一区二区 | 69精品久久久 | 日本韩国精品一区二区在线观看 | 亚洲精品日韩一区二区电影 | 911国产在线观看 | 福利一区在线 | 97精品免费视频 | 国产在线观看99 | 最近中文字幕在线中文高清版 | 中文字幕av在线不卡 | 男女视频国产 | 亚州精品天堂中文字幕 | 久久精品亚洲 | 69精品在线观看 | 色综合久久88色综合天天 | 日韩一区二区三区免费电影 | 国产超碰在线观看 | 久久精品99国产国产 | 在线天堂日本 | 中文字幕888 | 青青草国产在线 | 午夜12点| 国产成人亚洲在线观看 | 欧美黄色软件 | 日本久久久久久久久久 | 色就是色综合 | av看片网址 | 久草视频首页 | 日本精品久久久一区二区三区 | 波多野结衣电影一区二区三区 | 精品久久久久久久久久岛国gif | 国产精品ssss在线亚洲 | 99视频精品视频高清免费 | 在线韩国电影免费观影完整版 | 亚洲精品国产成人av在线 | 国产福利91精品一区二区三区 | 欧美日韩在线观看一区二区三区 | 在线影院av| 欧美激情综合五月色丁香 | 久久人人爽人人爽人人片 | 在线国产一区二区 | 日日操日日 | 91自拍视频在线观看 | 成人免费中文字幕 | av资源网在线播放 | 玖玖精品视频 | 国产欧美日韩精品一区二区免费 | 国产丝袜在线 | 亚洲黑丝少妇 | 九九日韩| 国产精品国产三级国产不产一地 | 婷婷六月天综合 | 国产欧美久久久精品影院 | 天天插视频 | 久久伦理 | 国产高清在线观看 | av一级久久 | 久久久999免费视频 日韩网站在线 | 日韩成人在线免费观看 | 亚洲欧洲一区二区在线观看 | 日韩艹| 日韩一二三 | 日韩精品2区 | 国产精品国产三级国产不产一地 | 久久久久中文 | 嫩草av在线 | 99精品久久只有精品 | 精品在线观看国产 | 九七人人干 | www色网站| 久久人人精品 | 五月婷婷激情五月 | 麻豆 free xxxx movies hd | 99久热在线精品视频成人一区 | 午夜精品久久久久久久99无限制 | 你操综合 | 亚洲免费专区 | 欧美日韩国产精品一区二区亚洲 | 久久精品免费播放 | 久久福利国产 | av在线中文 | 天天躁天天躁天天躁婷 | av中文在线| 一区二区三区 中文字幕 | 亚洲精品美女久久久久 | 天堂在线免费视频 | 久久天堂网站 | 亚洲精品视频中文字幕 | 亚洲aⅴ在线 | 香蕉视频在线免费 | 国语精品久久 | 欧美日在线 | 久久成人18免费网站 | 麻豆传媒视频在线播放 | 五月婷婷婷婷婷 | 色综合色综合久久综合频道88 | 粉嫩av一区二区三区四区 | 亚洲第一区精品 | 精品欧美在线视频 | 日韩高清在线一区 | 欧美久久久久久久久久 | 午夜成人影视 | 精品久久1 | 久久毛片网| 亚洲精品国偷拍自产在线观看蜜桃 | 国产一区在线播放 | 美国av大片 | 在线观看小视频 | 久久99精品久久久久蜜臀 | 亚洲欧洲xxxx | 91 中文字幕 | 国产一级电影网 | 免费看片日韩 | 久草香蕉在线视频 | 99成人精品 | 国产精品 中文字幕 亚洲 欧美 | 97超碰国产在线 | 成人午夜电影网站 | 日韩精品视频在线观看网址 | 日韩高清精品一区二区 | 成人av在线影视 | 婷婷丁香自拍 | 国产精品21区 | 久久人人爽爽人人爽人人片av | 91成人免费视频 | 久久免费视频在线观看30 | 久久国产精品久久精品 | 亚洲国产精品成人女人久久 | 国产一区二区三区四区在线 | 日本 在线 视频 中文 有码 | 韩国av不卡 | 免费高清男女打扑克视频 | 欧美精品二区 | 国产尤物视频在线 | www天天干com | 精品欧美日韩 | 久草视频免费观 | 国产午夜不卡 | 日韩乱码中文字幕 | 97热在线观看 | 亚洲伊人婷婷 | 日韩三级视频在线观看 | 精品在线视频观看 | 国色天香第二季 | 日韩毛片在线播放 | 黄色一级片视频 | 欧美性色综合网站 | 一区二区三区日韩精品 | 精品视频中文字幕 | 在线观看视频你懂 | 欧洲成人免费 | 免费精品在线观看 | 欧美色综合久久 | 日韩久久精品一区二区三区下载 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 99免费视频 | 亚洲精品国产品国语在线 | 久久国产精品免费视频 | 亚洲国产精品人久久电影 | av导航福利 | 国产精品中文久久久久久久 | 精品国产成人在线 | 日韩成人一级大片 | 玖玖国产精品视频 | 国产精品福利小视频 | 欧美午夜精品久久久久 | 国内视频在线 | 激情深爱.com | 制服丝袜在线 | 婷婷丁香社区 | 久草在线最新 | 久久精品中文视频 | 2020天天干夜夜爽 | 国产精品com| 在线观看不卡的av | 91丨九色丨勾搭 | 久久综合干 | 日韩免费三级 | 日韩高清一二区 | 国产91精品高清一区二区三区 | 日本精品久久 | 天堂在线免费视频 | 在线视频 亚洲 | 天天激情天天干 | 欧美日韩高清一区二区三区 | 久久精品人人做人人综合老师 | 欧美一级性生活视频 | 91精品久久香蕉国产线看观看 | 激情综合网五月 | 亚洲精品ww | 色婷婷六月天 | 91久久久久久久一区二区 | 欧美性色网站 | 中文字幕在线观看91 | 国产精品亚洲人在线观看 | 免费观看一级视频 | 成人av一区二区兰花在线播放 | 国产高清在线观看av | 成人黄色在线视频 | 天天干夜夜干 | 在线观看中文 | 69视频在线播放 | 91在线日韩 | 91精品国产99久久久久 | 日韩欧美国产激情在线播放 | 日日日操 | 久久久久亚洲国产 | 99精品黄色片免费大全 | 久久综合综合久久综合 | 天堂资源在线观看视频 | 国产高清在线观看av | 国产精品一区二区久久精品爱微奶 | 婷婷av电影 | 四虎国产精品成人免费4hu | 久久综合国产伦精品免费 | 一级黄色片在线 | 日韩欧美精品免费 | 99热手机在线观看 | 五月色综合 | 91麻豆精品久久久久久 | 国产日韩欧美在线影视 | 精品国产_亚洲人成在线 | 亚洲精品成人网 | 中文字幕高清在线 | 欧美先锋影音 | 91大神精品视频在线观看 | 久久久久亚洲精品男人的天堂 | 久久综合久久久 | 久久99精品久久久久蜜臀 | 97在线视频免费播放 | 97视频总站 | 亚洲天堂网在线视频 | 99人成在线观看视频 | 人人澡超碰碰97碰碰碰软件 | 日韩免费在线观看视频 | 四虎影视www | 天天干天天操天天入 | 亚洲影音先锋 | 日韩av看片 | 久久69精品久久久久久久电影好 | 日韩精品一区二区三区在线播放 | 91麻豆福利 | 午夜精品一区二区国产 | 国产一区二区手机在线观看 | 日日夜操 | 国产精品成人一区二区三区吃奶 | 激情av资源网 | 最近中文字幕免费av | 亚洲经典视频在线观看 | 精品国产精品久久一区免费式 | 欧美精品久久久久久久久免 | 九九热中文字幕 | 99热九九这里只有精品10 | 国产一区私人高清影院 | 精品国产视频一区 | 91色综合 | 人人爱人人射 | 99久久婷婷国产综合亚洲 | 成人av资源 | 亚洲视频综合在线 | 亚洲精品乱码久久久久久久久久 | 成人福利av| 色视频 在线 | 麻豆国产电影 | 中文字幕在线观看av | 欧美激情综合五月色丁香小说 | 国产91对白在线播 | 国产精品久久久久久久久免费看 | 911久久 | 美女视频又黄又免费 | 久久视影 | 人人爽人人爽人人爽人人爽 | 国产视频一区二区在线观看 | 日韩一区二区免费视频 | 99久久婷婷国产一区二区三区 | 另类老妇性bbwbbw高清 | 久久中文字幕视频 | 九九久久久久久久久激情 | 国产精品亚州 | 美腿丝袜一区二区三区 | 一区二区视频播放 | 国产精品久久久久一区二区三区 | 狠狠狠色丁香婷婷综合久久88 | 国产黄a三级三级 | 亚洲午夜小视频 | 久久精品香蕉视频 | 中文字幕观看在线 | 人人爽人人做 | 免费看毛片网站 | 一区中文字幕电影 | 成人午夜在线观看 | 欧美激情精品久久久 | 99热超碰 | 91理论片午午伦夜理片久久 | 日韩性久久 | 人人澡人人添人人爽一区二区 | 中文字幕欧美日韩va免费视频 | 五月天欧美精品 | 亚洲国产成人精品久久 | 国产精品久久久久久久久久久免费看 | 成人在线视频免费 | 色婷婷亚洲精品 | 精品国产1区 | 欧美性黑人 | 欧美人体xx | 久草手机视频 | 欧美激情精品久久久久久 | 日韩在线观看第一页 | 国产三级国产精品国产专区50 | av软件在线观看 | 婷婷在线播放 | 国产精品a久久久久 | 日日日操 | 奇米影视999 | av在线电影网站 | 国产精品久久久久免费观看 | 国产福利在线免费观看 | 国产亚洲精品无 | 国产精品区在线观看 | 久久影院亚洲 | 久久久不卡影院 | 免费成人在线视频网站 | 97超碰在线免费 | 国际精品久久久久 | 91男人影院 | 色婷婷狠狠五月综合天色拍 | 在线免费视频a | 亚洲综合在线视频 | av短片在线 | 超碰人人91| 91精品国产电影 | 99精品国产免费久久久久久下载 | 婷婷综合成人 | av免费在线观 | 一区二区三区影院 | 黄色国产成人 | 欧美亚洲精品在线观看 | 韩国一区视频 | 在线中文字母电影观看 | 亚洲性xxxx | 成人在线网站观看 | 国产中文字幕在线 | 人人澡超碰碰97碰碰碰软件 | 91在线产啪 | 97精品国产97久久久久久春色 | 激情图片qvod| 99国产精品一区 | 亚洲精品裸体 | 九九免费在线看完整版 | 在线国产视频一区 | 亚洲精品国产欧美在线观看 | 精壮的侍卫呻吟h | 99热精品国产一区二区在线观看 | 伊人午夜视频 | 欧美精品在线免费 | 91探花在线视频 | 欧美精品久久久久性色 | 亚洲最新av网站 | 久久av网址 | 久久亚洲综合色 | japanese黑人亚洲人4k | 怡红院久久 | 亚洲高清网站 | 国产裸体视频bbbbb | 三级视频日韩 | mm1313亚洲精品国产 | 99国产视频在线 | 天天躁天天狠天天透 | 中文字幕成人网 | 97操操操| 天天爱天天 | 女女av在线 | a级成人毛片 | 国内三级在线观看 | 欧美日韩aaaa | 欧美一区二区三区在线播放 | 国产一区二区三区视频在线 | 色婷丁香 | 高清中文字幕 | 色噜噜日韩精品欧美一区二区 | 激情欧美一区二区免费视频 | 在线国产视频观看 | 国产精品成人免费精品自在线观看 | 国产亚洲视频中文字幕视频 | 免费av成人在线 | 色激情在线| 亚洲理论在线观看电影 | 亚洲精品国产高清 | 天天操天天操一操 | 国产精品久久久久久69 | 色橹橹欧美在线观看视频高清 | 久久免费视频8 | 久久成人国产精品入口 | 丝袜美女在线观看 | 操操综合网 | 中文av网站 | 黄色精品久久 | 狠狠色综合网站久久久久久久 | 狠狠干狠狠艹 | 99久久这里有精品 | 日韩在线精品一区 | 天天干天天操天天干 | 狠狠躁夜夜a产精品视频 | 亚洲精品国偷自产在线91正片 | 欧美精品乱码久久久久久 | 国产成人精品综合久久久久99 | 国产精品一区二区精品视频免费看 | 黄色成人91 | 欧美性色黄大片在线观看 | 色姑娘综合天天 | 国产成人三级一区二区在线观看一 | 在线观看mv的中文字幕网站 | 亚洲播播 | 久久91网| 97成人在线观看视频 | 一区二区三区观看 | 日韩区欧美久久久无人区 | 天堂久久电影网 | 操夜夜操 | 午夜三级大片 | 日韩理论在线 | 欧美亚洲精品在线观看 | 天天操夜 | 日韩在线观看视频中文字幕 | 国产成人免费网站 | 日韩精品一区二区三区丰满 | 最新av在线免费观看 | 国产精品久久久久久久久久久久午 | 天天操福利视频 | 天天干天天干天天操 | 91精品啪| 亚洲精选在线观看 | 蜜臀久久99精品久久久无需会员 | 黄色av电影免费观看 | 五月婷婷av在线 | 国产成人精品综合久久久 | 国产色综合| a在线免费观看视频 | 日韩电影一区二区在线 | 国产免费二区 | 久精品视频免费观看2 | 国产午夜三级一二三区 | 免费看的国产视频网站 | 欧洲成人av | 久久久久亚洲天堂 | www.激情五月.com | 黄色三级在线观看 | 一区精品久久 | 一区久久久 | 国产18精品乱码免费看 | 91av短视频 | 免费看高清毛片 | 四虎成人精品在永久免费 | 手机av在线网站 | 国产精品麻豆三级一区视频 | 99亚洲视频 | 美女网站在线看 | 成人久久视频 | 免费激情网| 欧美精品xxx | 日韩激情av在线 | 99久久精品久久亚洲精品 | 国产成人精品综合久久久久99 | 亚洲三级av | 96亚洲精品久久久蜜桃 | 久久黄色免费观看 | 久久久久久久久久久久99 | japanesefreesexvideo高潮 | 黄av资源 | 日本午夜在线观看 | 91成人午夜 | 亚洲伊人av| av网站在线观看免费 | 欧美精品久久天天躁 | 伊人永久| 日韩区在线观看 | 日韩亚洲在线视频 | 草久在线 | 91成人免费看片 | www黄色com | 国产在线高清视频 | 国产亚洲欧洲 | 我要看黄色一级片 | 国产婷婷在线观看 | 在线你懂 | 国产精品一区久久久久 | 免费观看91视频 | 免费看黄色毛片 | 亚洲精品中文字幕视频 | 特级黄色片免费看 | 97成人在线视频 | 日批视频在线 | 成人黄色一级视频 | 国产精品 999 | 国产精品一区久久久久 | 国产综合香蕉五月婷在线 | 天天干,天天操 | 欧美成人理伦片 | 99这里都是精品 | 久久亚洲人 | 国产精品美女网站 | av观看免费在线 | 欧美色道 | 亚洲一区av | 欧美日韩有码 | 欧美污网站 | 久草精品视频在线看网站免费 | 国产永久免费 | 免费看成人a | 天天爱天天操天天干 | 久久久久久久久久亚洲精品 | 在线免费观看视频a | 国产人成一区二区三区影院 | 午夜视频免费播放 | 在线黄色av电影 | 欧美日韩中文视频 | 日韩a级黄色| 521色香蕉网站在线观看 | 久久久久久久久黄色 | 美女av免费看 | 日韩v在线 | 久久午夜电影 | 五月婷婷久久综合 | 久久久久国产精品一区二区 | 久久男人中文字幕资源站 | 欧美激情va永久在线播放 | 久久久美女 | 免费a级毛片在线看 | 亚洲欧洲视频 | 午夜av色 | 精品电影一区 | 免费精品人在线二线三线 | 欧亚久久 | 国产一区二区三区高清播放 | 日本爱爱免费 | 国产精品永久免费视频 | 日日夜夜天天久久 | 在线影院中文字幕 | 人人插人人做 | 人人干人人添 | 亚洲精品在线观 | 中国一级特黄毛片大片久久 | 色婷婷综合久久久久 | 国产分类视频 | 91成版人在线观看入口 | 欧洲精品久久久久毛片完整版 | 麻豆国产网站 | 日本午夜免费福利视频 | 国产精品九九九九九九 | 国产精品久久久久永久免费 | 国产精品一区二区av | 国产精品亚洲片在线播放 | 最近日韩免费视频 | 看片网站黄色 | 一级特黄av | av在线观| 午夜视频一区二区三区 | 91精品啪在线观看国产 | 一级全黄毛片 | 国产在线久草 | 亚洲成人精品av | 丁香婷婷深情五月亚洲 | 久久久高清免费视频 | 国产91精品高清一区二区三区 | 久久久wwww | 91精品久久久久久久久久久久久 | 成年人黄色在线观看 | 在线观看激情av | 亚洲第一中文网 | 丁香婷婷综合色啪 | 黄色影院在线免费观看 | 国产又粗又猛又黄又爽视频 | 免费亚洲一区二区 | 高清免费在线视频 | 日韩成人一级大片 | 久久久久久久久久久久99 | 亚洲二区精品 | 波多野结衣一区 | 人人看97 | 亚洲国产99| 欧美精品资源 | 国产99一区 | 国产不卡视频在线 | 1000部18岁以下禁看视频 | 91在线视频观看免费 | 欧美日韩国产综合一区二区 | 五月婷婷六月丁香激情 | avove黑丝| av日韩精品 | 中文字幕 国产视频 | 久久天天操 | 九色视频网站 | 黄色国产高清 | 日韩欧美综合 | 成人性生交大片免费看中文网站 | 亚洲视频免费在线看 | 久久人人97超碰精品888 | 精品久久亚洲 | 91大片网站 | 97色综合| 免费91在线 | 午夜精品99久久免费 | 亚洲综合在线五月 | 一区在线观看视频 | 国产福利精品视频 | 国产看片 色 | 日韩一区二区三区高清免费看看 | 91精品国产91热久久久做人人 | 国产成人精品久 | 国产精品 9999 | 又湿又紧又大又爽a视频国产 | 一级黄毛片 | 午夜影院先 | 久久首页 | 一本大道久久精品懂色aⅴ 五月婷社区 | 成人精品一区二区三区中文字幕 | 九九九九色 | 99国产成+人+综合+亚洲 欧美 | 天天干,天天操 | 国产中文视频 | 天天色天天射天天综合网 | 成人中文字幕+乱码+中文字幕 | 奇米影视8888在线观看大全免费 | 亚洲成人av在线播放 | 高清中文字幕 | 麻豆免费视频观看 | .国产精品成人自产拍在线观看6 | 中文字幕亚洲欧美 | 五月激情久久 | 激情综合交 | 日韩特黄一级欧美毛片特黄 | 久久99久久99精品免费看小说 | 菠萝菠萝在线精品视频 | 国产99久久久久久免费看 | 午夜国产在线 | 精品久久久久久久久久久久久久久久 | 亚洲午夜久久久综合37日本 | 欧美成年网站 | 最近免费观看的电影完整版 | 精品久久久久久亚洲 | 91精品在线观看视频 | 91看片在线播放 | 丁香视频全集免费观看 | 成人免费视频观看 | 97在线免费观看 | 97日日碰人人模人人澡分享吧 | 探花视频在线观看+在线播放 | 欧美一区二区三区特黄 | 欧美日本一区 | 97干com| 狠狠色婷婷丁香六月 | 欧美一级电影在线观看 | 人人舔人人| 免费在线国产黄色 | 国产精品一区免费在线观看 | 日韩欧美高清免费 | 国产精品一区二区av | 久久视频免费 | 久久综合色8888 | 国产精品久久久久久久久久久久久 | 日韩在线观看一区二区 | 久久96国产精品久久99软件 | 在线观看国产91 | av资源中文字幕 | 激情小说网站亚洲综合网 | 久草影视在线观看 | 伊人影院在线观看 | 成片免费观看视频大全 | 欧美日韩亚洲一 | 国产精品久久久久影院 | 天天插天天爱 | 天天操天天操天天操天天操 | 亚洲欧美成人网 | 福利区在线观看 | 一级成人免费视频 | 国产精品久久久久久久久久久久久 | 日免费视频 | 久久久午夜电影 | av免费电影网站 | 天天草天天插 | 中文字幕日韩无 | 日韩在线网址 | 深夜免费小视频 | 久久亚洲热 | 日韩视频图片 | 国产护士hd高朝护士1 | 黄色亚洲大片免费在线观看 | 伊人电影在线观看 | 日韩视频二区 | 人人射 | 国产专区一 | 中文在线免费看视频 | 黄色特级片 | 久久综合久色欧美综合狠狠 | 免费网站看v片在线a | 人人爱爱人人 | 国产日产精品一区二区三区四区 | 亚洲精品在线国产 | av亚洲产国偷v产偷v自拍小说 | 精品99免费视频 | 97视频在线播放 | 国产人免费人成免费视频 | 亚洲高清国产视频 | 久久丁香| 欧美人操人| 超碰在线免费97 | 97超碰中文字幕 | 国产福利精品视频 | 久久免费试看 | 日日干网址 | 国产成人精品一区二区三区在线观看 | 国产精品久久久久婷婷二区次 | 久草免费在线视频观看 | 最近中文字幕完整高清 | 国产日本在线 | 亚洲黄色软件 | 日本不卡久久 | 四虎在线永久免费观看 | 综合五月婷婷 | 九九免费在线观看 | adc在线观看 | 激情六月婷婷久久 | 国产精品久久久999 国产91九色视频 | www.午夜 | 99久久精品免费一区 | 美女国产精品 | 久久精品99视频 | 亚洲一区二区三区毛片 | 欧美日韩性视频在线 | 特黄特黄的视频 | 丁香婷五月 | 国产精品女同一区二区三区久久夜 | 国产精品自产拍在线观看 | 欧美精品一二 | 国产黄色片一级三级 | 国产特级毛片aaaaaa | 欧美精品一级视频 | www五月婷婷 | av中文资源在线 | 色网站免费在线观看 | 99综合久久 | 中文字幕人成乱码在线观看 | 国产一区二区电影在线观看 | 国产视频高清 | 五月亚洲综合 | 国产精品久久久久久99 | 久久久久日本精品一区二区三区 | 亚洲精品网站 | 超碰在线人人草 | 色婷婷综合久久久中文字幕 | 黄色片免费电影 | 香蕉影院在线 | 九九视频热 | 在线亚洲激情 | 91香蕉亚洲精品 | 我要色综合天天 | 日韩在线不卡视频 | 天堂网中文在线 | 激情网在线观看 | 日韩3区 | 蜜桃av人人夜夜澡人人爽 | 小草av在线播放 | 久久国产精品99精国产 | 中文字幕2021 | 成人免费视频网 | 国产亚洲精品久久久久久久久久久久 | 国产成人在线网站 | 人人干网 | 黄色免费观看网址 |