qt - Qt循环播放背景音乐

标签 qt qmediaplayer

我想不断循环播放背景音乐,直到游戏结束。

在头文件中:

    QMediaPlayer * music = new QMediaPlayer();

在cpp文件中:

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

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

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

最佳答案

听起来你想要的是QMediaPlaylistQMediaPlaylist 允许您控制播放模式,在本例中您将使用 Loop。这种方法还有其他优点,例如 CurrentItemInLoopCurrentItemInLoop 将循环播放当前播放列表项,这意味着如果您将来添加更多歌曲,您可以选择一首歌曲,然后仅循环该轨道。因此,您只需要一个播放列表即可满足大多数需求。下面是一些示例代码,但我目前没有办法对其进行测试( native 上没有安装 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();

关于qt - Qt循环播放背景音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37690616/

相关文章:

c++ - Raspberry Pi 3 上的 QML 性能

c++ - 是否可以从 QModelIndex 获取 Qpoint

qt - 从 QWidget 继承并使类成为模板

c++ - QMediaPlayer 不产生音频

c++ - QMediaplayer:没有声音

qt - 用户选择项目时如何在委托(delegate)中关闭 QComboBox 编辑器

c++ - 在 Xcode 中,如何使用您拥有源代码的外部库进行调试?

c++ - QMediaplayer 持续时间错误

python - 如何在不将其保存到文件的情况下在 Qt 中播放 numpy 数组?

c++ - 播放视频时在 qwidget 上绘图