我正在使用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文件。
注意:在特殊情况下,无法仅在数据库中存储路径。
我非常感谢你的帮助。 非常感谢你!
答案 0 :(得分:3)
您需要将QByteArray
作为QIODevice
提供给stream
的{{1}}参数。
尝试以下方法:
QMediaPlayer::setMedia(const QMediaContent & media, QIODevice * stream = 0)