在我的资源文件中,我有31个引擎声音样本。我想做一个滑块,移动将改变另一个样本(更高的引擎开始大喊,降低它会更平静)。我的滑块代码:
void MainWindow::on_poziomMocy_sliderMoved(int position)
{
QMediaPlayer * music = new QMediaPlayer();
//play umieścić w caseach i kończyć je stop. Tak jak to miałem wcześniej, dodać cały plik
//do resources
switch(position)
{
case 0:
{
music->stop();
music->setMedia(QUrl("qrc:/sounds/dźwięki/859.wav"));
music->play();
}
case 1:
{
music->stop();
music->setMedia(QUrl("qrc:/sounds/dźwięki/919.wav"));
music->play();
}
case 2:
{
music->stop();
music->setMedia(QUrl("qrc:/sounds/dźwięki/984.wav"));
music->play();
}
case 3:
{
music->stop();
music->setMedia(QUrl("qrc:/sounds/dźwięki/1052.wav"));
music->play();
}
case 4:
{
music->stop();
music->setMedia(QUrl("qrc:/sounds/dźwięki/1126.wav"));
music->play();
}
}
当我播放并滑动滑块时,样本重叠,我的扬声器正在哭泣。我不知道该怎么做"音乐"范围是对的,为什么stop()不能正常工作?
答案 0 :(得分:1)
这是因为每次滑动创建的新QMediaPlayer
滑块:
QMediaPlayer * music = new QMediaPlayer();
你应该把球员创造放在另一个地方。为你的班级建设者提供帮助。