如何序列化QSound

How to serialize QSound?

本文关键字:QSound 序列化      更新时间:2023-10-16

我正在寻找一种方法来持久存储一些*.wav声音。

在我的应用程序中,我已经使用boost将几个东西序列化到一个小二进制数据库中。现在我试图将QSounds存储在这个数据库中,太,如果显然不工作。我不想把wave文件传递给exe,而是把它们编译到exe或在一个单独的数据文件中。

是否有任何方法序列化QSound或我应该尝试另一种方法?

  • 有一个替代处理与c++或Qt的波文件?
  • 有没有任何方法来存储和恢复这些文件,而不让他们躺在周围的波浪文件?
我经常使用boost序列化,所以我的第一个想法是对这些文件也使用它。也许有人能给我提示一下我应该看什么

QSound是一个简单的类,用于播放声音,而不是用于"声音对象"(在我看来有点不幸的命名)。

您可以使用Qt资源来存储您的文件在您的exe.

QSound比较原始。Qt声子模块有更多的功能。

您应该查看MediaObject类(可以将字节数组作为输入),或者MediaSource类(在序列化API之上实现自定义QIODevice)。

Phonon是一个大模块,但可能不适合你的用例。

另一个选择是QtMultimedia模块和QAudioOuput类,它们也可以将QIODevice作为数据源。