当我尝试执行"play"对于不存在的文件上的循环,我得到了异常&;stack_overflow&;。我使用Qt 5.15.2和windows 7
playlist->addMedia(QUrl::fromLocalFile("not_exist"));
playlist->setPlaybackMode(QMediaPlaylist::Loop);
QMediaPlayer *music = new QMediaPlayer();
music->setPlaylist(playlist);
music->play();
我可以捕获这个异常,或者我可以使用另一种方式在循环中运行声音来排除这个问题吗?
你必须使用QMediaPlayer的错误信号:
connect(music, QOverload<QMediaPlayer::Error>::of(&QMediaPlayer::error),
[music](QMediaPlayer::Error error){
qDebug() << error << music->errorString();
});
输出:
QMediaPlayer::ResourceError "Could not open resource for reading."