本文主要是介绍QT 实现播放器中音量控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在视频播放器中,要实现拖动控制条来调节音量,是一件很必要也很简单的事情。下面具体来说一说。
首先,打开.ui文件,在合适的位置拖进去一个Slider,就像这样,看右下角。
为了形象一点,可以在其左边放置一个小喇叭,以示这是用来调节音量的。
然后,设置信号与槽。方法是,选中Slider,然后点击左上角的信号与槽。
接下来, 选中Slider,朝外一指,会弹出一个窗口,选择valueChanged(),表示当进度值改变时触发。其余几个表示的含义是:sliderPressed()当用户按下时触发;sliderMoved()当用户拖动滑块时触发;sliderReleased()当用户释放滑块时触发。
当我们选中valueChanged()后,在右侧可以编辑槽函数,添加一个changeVolume()函数,就可以了。
然后再代码里添加一些语句。(手动添加方式,如果是右击转到槽函数会简单一些)
首先,在 .h头文件中,声明一个槽函数。见第40行
然后,在.cpp文件中添加connect连接函数。
conncect(ui.horizontalSlider,SIGNAL(QSlider::valueChanged(int)),this,SLOT(changeVolume()));
第一个参数表示Object,也就是我音量控制条的名字。第二个参数表示信号,第三个是接受对象,一般是this,最后一个是槽函数。
最后,是编辑槽函数。
其中,player是QMediaPlayer对象,直接调用setVolume()方法即可。参数就是滑块对应的值。
在做这部分功能时,我一直发现,音量调节不了,无论设置哪一个信号,sliderPressed(),sliderMoved()还是valueChanged()信号,拖动滑块,音量不变化。调了一个晚上加一个上午,没发现问题。后来把.ui文件关闭保存了之后,重新运行发现没问题了,难道是信号与槽函数在VS2013下无法动态更新。。但是我的播放进度条在编写的时候就没遇到这个问题。欢迎也同样遇到音量调不了的朋友一起交流。
这篇关于QT 实现播放器中音量控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!