循环播放背景音乐Qt
play background music in a loop Qt
我想一直循环播放背景音乐,直到游戏结束。
头文件中:
QMediaPlayer * music = new QMediaPlayer();
在cpp文件中:
startGame(){
music->setMedia(QUrl("qrc:/sounds/backgroundmusic.mp3"));
music->play(); }
stopGame(){
music->stop(); }
现在我的音乐一直播放到最后但没有重新开始。我怎样才能让它再次循环?
有没有我可以使用的 QMediaPlayer 成员,或者我应该在 while 循环中 运行 它,还是什么?
听起来你想要的是 QMediaPlaylist
。 QMediaPlaylist
允许您控制播放模式,在这种情况下您将使用 Loop
。这种方法还有其他优点,例如 CurrentItemInLoop
。 CurrentItemInLoop
将循环播放当前播放列表项目,这意味着如果您以后添加更多歌曲,您可以 select 一首歌曲然后仅循环播放该曲目。因此,您只需要一个播放列表即可满足大多数需求。下面是一些示例代码,虽然我目前没有办法测试它(这台机器上没有安装 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();
我想一直循环播放背景音乐,直到游戏结束。
头文件中:
QMediaPlayer * music = new QMediaPlayer();
在cpp文件中:
startGame(){
music->setMedia(QUrl("qrc:/sounds/backgroundmusic.mp3"));
music->play(); }
stopGame(){
music->stop(); }
现在我的音乐一直播放到最后但没有重新开始。我怎样才能让它再次循环? 有没有我可以使用的 QMediaPlayer 成员,或者我应该在 while 循环中 运行 它,还是什么?
听起来你想要的是 QMediaPlaylist
。 QMediaPlaylist
允许您控制播放模式,在这种情况下您将使用 Loop
。这种方法还有其他优点,例如 CurrentItemInLoop
。 CurrentItemInLoop
将循环播放当前播放列表项目,这意味着如果您以后添加更多歌曲,您可以 select 一首歌曲然后仅循环播放该曲目。因此,您只需要一个播放列表即可满足大多数需求。下面是一些示例代码,虽然我目前没有办法测试它(这台机器上没有安装 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();