循环播放背景音乐Qt

时间:2016-06-07 22:45:53

标签: qt qmediaplayer

我希望在游戏结束前不断地播放背景音乐。

头文件中的

    QMediaPlayer * music = new QMediaPlayer();

在cpp文件中:

    startGame(){
    music->setMedia(QUrl("qrc:/sounds/backgroundmusic.mp3"));
    music->play();  }

   stopGame(){
   music->stop(); }

现在我的音乐一直播放到最后但不重启。我怎样才能让它再次循环? 我可以使用QMediaPlayer成员,还是应该在while循环中运行它,或者是什么?

1 个答案:

答案 0 :(得分:11)

听起来像你想要的QMediaPlaylistQMediaPlaylist允许您控制播放模式,在这种情况下,您将使用Loop。这种方法也有其他优点,例如CurrentItemInLoopCurrentItemInLoop将在循环中播放当前播放列表项,这意味着如果您将来添加更多歌曲,则可以选择一首歌曲,然后仅循环播放该曲目。因此,您只需要一个播放列表即可满足大多数需求。下面是一些示例代码,我目前没有办法测试它(此机器上没有安装Qt多媒体扩展)。应尽可能地证明这一点。

QMediaPlaylist *playlist = new QMediaPlaylist();
playlist->addMedia(QUrl("qrc:/sounds/backgroundmusic.mp3"));
playlist->setPlaybackMode(QMediaPlaylist::Loop);

QMediaPlayer *music = new QMediaPlayer();
music->setPlaylist(playlist);
music->play();