QMediaPlayer 中播放声音的内部扩展
Posted
技术标签:
【中文标题】QMediaPlayer 中播放声音的内部扩展【英文标题】:Internal exaption on play sound in QMediaPlayer 【发布时间】:2021-09-16 19:06:39 【问题描述】:当我尝试在不存在的文件上使用循环执行“播放”时,我得到了扩展“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();
我能否捕捉到这个异常,或者我可以使用另一种方式在循环中运行声音来排除这个问题?
【问题讨论】:
【参考方案1】:你必须使用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."
【讨论】:
但是这段代码对我没有帮助。我可以从 mediaStatusChanged 获取错误和状态,但我无法阻止 stack_overflow 和崩溃我的应用程序 @klynxe 如果存在 *** 则存在错误,在带有 gstreamer 的 Linux 中,只有一个警告表明来自后端的错误,而在 Qt 端则抛出错误信号,我建议你举报。以上是关于QMediaPlayer 中播放声音的内部扩展的主要内容,如果未能解决你的问题,请参考以下文章