设置音量显示滑块
This commit is contained in:
parent
effdecb2e7
commit
749120f14a
|
@ -2,9 +2,10 @@
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
|
||||||
int mplayer_pid;
|
int mplayer_pid; // 子进程号
|
||||||
pthread_t t1,t2; //
|
pthread_t t1,t2; // 线程
|
||||||
char current_song_path_name[128] = "";
|
char current_song_path_name[128] = ""; // 当前歌曲路径
|
||||||
|
int currentVolume = 50; // 当前音量
|
||||||
|
|
||||||
void *getTimerThreadFunc(void *arg); // 发送获取当前时间的 mplayer 命令
|
void *getTimerThreadFunc(void *arg); // 发送获取当前时间的 mplayer 命令
|
||||||
void *readPipeMSG(void *arg); // 获取当前时间的线程
|
void *readPipeMSG(void *arg); // 获取当前时间的线程
|
||||||
|
@ -31,8 +32,10 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
|
|
||||||
// 捕获当前时间信号
|
// 捕获当前时间信号
|
||||||
connect(this, SIGNAL(currentTimeSignal(int)), this, SLOT(setCurrentTimeLabel(int)));
|
connect(this, SIGNAL(currentTimeSignal(int)), this, SLOT(setCurrentTimeLabel(int)));
|
||||||
// 建立滑块修改信号通讯
|
// 建立歌曲进度滑块修改信号通讯
|
||||||
connect(this, SIGNAL(currentProgressSignal(int)), this, SLOT(setCurrentSlider(int)));
|
connect(this, SIGNAL(currentProgressSignal(int)), this, SLOT(setCurrentSlider(int)));
|
||||||
|
// 建立音量大小滑块信号通讯
|
||||||
|
// connect(this, SIGNAL(currentVolumeSignal(int)), this, SLOT(setVolumeSlider(int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
@ -109,6 +112,9 @@ void MainWindow::mplayerInit()
|
||||||
pthread_create(&t1,NULL,getTimerThreadFunc,this);
|
pthread_create(&t1,NULL,getTimerThreadFunc,this);
|
||||||
pthread_create(&t2,NULL,readPipeMSG,this);
|
pthread_create(&t2,NULL,readPipeMSG,this);
|
||||||
|
|
||||||
|
volume_control(currentVolume, 1); // 初始音量设置为 currentVolume->50
|
||||||
|
setVolumeSlider(currentVolume); // 设置音量滑块初始位置
|
||||||
|
|
||||||
// pthread_detach(t1);
|
// pthread_detach(t1);
|
||||||
// pthread_detach(t2);
|
// pthread_detach(t2);
|
||||||
|
|
||||||
|
@ -202,6 +208,12 @@ void MainWindow::setCurrentSlider(int currentProgress)
|
||||||
ui->time_slider->setValue(currentProgress);
|
ui->time_slider->setValue(currentProgress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::setVolumeSlider(int currentVolume)
|
||||||
|
{
|
||||||
|
// 设置音量滑动条状态
|
||||||
|
ui->volume_slider->setValue(currentVolume);
|
||||||
|
}
|
||||||
|
|
||||||
void *getTimerThreadFunc(void *arg)
|
void *getTimerThreadFunc(void *arg)
|
||||||
{
|
{
|
||||||
MainWindow *p = (MainWindow *)arg;
|
MainWindow *p = (MainWindow *)arg;
|
||||||
|
@ -320,10 +332,11 @@ void MainWindow::player_rewind_or_forward(int seconds)
|
||||||
write(this->fifo_fd, changeSongBuf, len); // 将快进快退指令写入到有名管道中
|
write(this->fifo_fd, changeSongBuf, len); // 将快进快退指令写入到有名管道中
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::volume_control(int value)
|
void MainWindow::volume_control(int value, int abs)
|
||||||
{
|
{
|
||||||
char changeSongBuf[128] = "";
|
char changeSongBuf[128] = "";
|
||||||
int len = sprintf(changeSongBuf, "volume %d\n", value); // 音量调整到 value 大小
|
// 音量调整到 value 大小(-数减+数加), abs 为 0 时在当前音量上加减一个值,abs 不为 0 时将当前音量设置为 value 大小
|
||||||
|
int len = sprintf(changeSongBuf, "volume %d %d\n", value, abs);
|
||||||
write(this->fifo_fd, changeSongBuf, len); // 将音量控制指令写入到有名管道中
|
write(this->fifo_fd, changeSongBuf, len); // 将音量控制指令写入到有名管道中
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,10 +375,15 @@ void MainWindow::on_mute_btn_clicked()
|
||||||
|
|
||||||
void MainWindow::on_volume_down_btn_clicked()
|
void MainWindow::on_volume_down_btn_clicked()
|
||||||
{
|
{
|
||||||
volume_control(-10); // 减 10 音量
|
volume_control(-10, 0); // 减 10 音量
|
||||||
|
currentVolume -= 10;
|
||||||
|
setVolumeSlider(currentVolume); // 设置音量滑块位置
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_volume_up_btn_clicked()
|
void MainWindow::on_volume_up_btn_clicked()
|
||||||
{
|
{
|
||||||
volume_control(10); // 加 10 音量
|
volume_control(10, 0); // 加 10 音量
|
||||||
|
currentVolume += 10;
|
||||||
|
// emit this->currentVolumeSignal(currentVolume);
|
||||||
|
setVolumeSlider(currentVolume); // 设置音量滑块位置
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,14 +49,16 @@ public slots:
|
||||||
void playNextSong(); // 切换歌曲槽函数I
|
void playNextSong(); // 切换歌曲槽函数I
|
||||||
void playLastSong();
|
void playLastSong();
|
||||||
void player_rewind_or_forward(int seconds); // 快进快退函数
|
void player_rewind_or_forward(int seconds); // 快进快退函数
|
||||||
void volume_control(int value); // 音量设置函数
|
void volume_control(int value, int abs); // 音量设置函数
|
||||||
void volume_mute_switch(int mute_arg); // 静音切换函数
|
void volume_mute_switch(int mute_arg); // 静音切换函数
|
||||||
void setCurrentTimeLabel(int time); // 设置当前时间标签槽函数
|
void setCurrentTimeLabel(int time); // 设置当前时间标签槽函数
|
||||||
void setCurrentSlider(int currentProgress); // 设置当前进度条
|
void setCurrentSlider(int currentProgress); // 设置当前进度条
|
||||||
|
void setVolumeSlider(int currentVolume); // 设置当前音量条
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void currentTimeSignal(int time); // 当前时间信号
|
void currentTimeSignal(int time); // 当前时间信号
|
||||||
void currentProgressSignal(int currentProgress); // 当前进度信号
|
void currentProgressSignal(int currentProgress); // 当前进度信号
|
||||||
|
void currentVolumeSignal(int currentVolume); // 当前音量信号
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_play_btn_clicked();
|
void on_play_btn_clicked();
|
||||||
|
|
Loading…
Reference in New Issue