From c2d65b957d3e2176083086d6876c15a57b427970 Mon Sep 17 00:00:00 2001 From: flykhan Date: Thu, 31 Aug 2023 12:24:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=B6=E4=BB=96=E5=85=83?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BF=A1=E6=81=AF=E4=BB=A3=E7=A0=81(?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E4=B8=AD=E5=BE=85=E8=B0=83=E8=AF=95),=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=91=E9=80=81=E9=97=B4=E9=9A=94=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E4=B8=BA500ms,=20=E6=B7=BB=E5=8A=A0=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E9=A6=96=E8=B7=B3=E8=BD=AC=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mainwindow.cpp | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 5711425..4b1097c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -95,8 +95,8 @@ void MainWindow::mplayerInit() pthread_create(&t1,NULL,getTimerThreadFunc,this); pthread_create(&t2,NULL,readPipeMSG,this); -// pthread_detach(t1); -// pthread_detach(t2); + // pthread_detach(t1); + // pthread_detach(t2); // 打开管道 // 以写的方式打开(阻塞到某进程 以读的方式打开) @@ -141,14 +141,15 @@ void MainWindow::scanSong() closedir(dir); } -void MainWindow::playNextSong(void) +void MainWindow::playNextSong() { index++; if(index == vectorSong.size()) index = 0; // 当索引到达歌曲最后一个时,将索引置为 0 ,循环索引 char changeSongBuf[128] = ""; // 将 loadfile 'song_name_path' 写入字符数组 - int len = sprintf(changeSongBuf, "loadfile ./song/%s\n", vectorSong[index].c_str()); + int len = sprintf(changeSongBuf, "loadfile /home/flykhan/qtmplayer/song/%s\n", vectorSong[index].c_str()); + // int len = sprintf(changeSongBuf, "loadfile ./song/%s\n", vectorSong[index].c_str()); qDebug() << changeSongBuf << endl; // 控制台打印下一首歌的名字 // write(this->fifo_fd, changeSongBuf.toUtf8().toStdString().c_str(),changeSongBuf.toUtf8().toStdString().size()); write(this->fifo_fd, changeSongBuf, len); // 将获取的下一首歌曲名写入到有名管道中 @@ -180,11 +181,25 @@ void *getTimerThreadFunc(void *arg) // 发送获取的当前时间的命令 // 发送 get_time_pos 命令到管道中 write(p->fifo_fd, "get_time_pos\n", strlen("get_time_pos\n")); - usleep(500*1000); // 休眠 0.5 秒 +// usleep(500*1000); // 休眠 0.5 秒 // 发送获取当前歌曲进度的命令 write(p->fifo_fd,"get_percent_pos\n",strlen("get_percent_pos\n")); usleep(500*1000); // 休眠 0.5 秒 + +// // 发送获取的当前歌曲元数据信息的命令 +// // 发送获取当前歌曲长度的命令 ANS_LENGTH +// write(p->fifo_fd, "get_time_length\n", strlen("get_time_length\n")); +// usleep(125*1000); +// // 发送获取当前歌曲名的命令 ANS_META_TITLE +// write(p->fifo_fd, "get_file_name\n", strlen("get_file_name\n")); +// usleep(125*1000); +// // 发送获取当前歌曲歌手的命令 ANS_META_ARTIST +// write(p->fifo_fd, "get_meta_artist\n", strlen("get_meta_artist\n")); +// usleep(125*1000); +// // 发送获取当前歌曲专辑的命令 ANS_META_ALBU +// write(p->fifo_fd, "get_meta_album\n", strlen("get_meta_album\n")); +// usleep(125*1000); } } @@ -216,6 +231,15 @@ void *readPipeMSG(void *arg) // 给 UI 发送进度信号 emit p->currentProgressSignal(currentProgress); } + +// // 如果消息是 "当前歌曲元数据信息" +// else if(strncmp(buf,"ANS_LENGTH", strlen("ANS_LENGTH")) == 0) +// { +// int currentProgress = 0; +// sscanf(buf, "ANS_LENGTH=%d", ¤tProgress); +// // 给 UI 发送进度信号 +// emit p->currentProgressSignal(currentProgress); +// } } } } @@ -253,5 +277,5 @@ void MainWindow::on_back_btn_clicked() void MainWindow::on_front_btn_clicked() { - + playNextSong(); // 切换下一首歌 }