Qt - 如何播放存储在QByteArray中的音频文件?

时间:2014-03-16 21:23:29

标签: qt qbytearray qmediaplayer

我正在使用Qt中的一个特殊应用程序,它将.mp3音频文件作为BLOB数据存储在QSQLITE数据库中。

使用以下代码创建QByteArray:

QByteArray array = query->value(0).toByteArray();

然后我尝试用QMediaPlayer播放声音:

mediaPlayer.setMedia(   QMediaContent(   QUrl::fromEncoded(array)   )   );
mediaPlayer.play();

但遗憾的是我收到了此错误:

DirectShowPlayerService::doSetUrlSource: Unresolved error code 800c000d

我想要实现的主要功能是能够播放存储在QByteArray中的这些.mp3文件。

注意:在特殊情况下,无法仅在数据库中存储路径。

我非常感谢你的帮助。 非常感谢你!

1 个答案:

答案 0 :(得分:3)

您需要将QByteArray作为QIODevice提供给stream的{​​{1}}参数。

尝试以下方法:

QMediaPlayer::setMedia(const QMediaContent & media, QIODevice * stream = 0)