添加其他元数据信息代码(注释中待调试), 修改发送间隔时间为500ms, 添加下一首跳转函数

This commit is contained in:
flykhan 2023-08-31 12:24:20 +08:00
parent b61fa9d1fd
commit c2d65b957d
1 changed files with 30 additions and 6 deletions

View File

@ -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", &currentProgress);
// // 给 UI 发送进度信号
// emit p->currentProgressSignal(currentProgress);
// }
}
}
}
@ -253,5 +277,5 @@ void MainWindow::on_back_btn_clicked()
void MainWindow::on_front_btn_clicked()
{
playNextSong(); // 切换下一首歌
}