Как сериализовать QSound? - PullRequest
       11

Как сериализовать QSound?

2 голосов
/ 19 октября 2011

Я ищу способ постоянного хранения некоторых * .wav звуков.

В моем приложении я уже сериализую несколько вещей в небольшую двоичную базу данных, используя boost .Теперь я тоже пытаюсь хранить QSounds в этой базе данных, которая, очевидно, не работает.Я не хочу доставлять wav-файлы в exe-файл, а скорее скомпилировать их в exe-файл или в отдельный файл данных.

Есть ли способ сериализации QSound или я должен попробовать другой способ??

  • Есть ли альтернатива для обработки wav-файлов с помощью C ++ или Qt?
  • Можно ли вообще хранить и восстанавливать эти файлы, не оставляя их в виде wav-файлов?файлы?

Я часто использую сериализацию Boost, поэтому моей первой мыслью было использовать ее и для этих файлов.Может, кто-нибудь подскажет, на что мне стоит взглянуть.

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

QSound - это простой класс для воспроизведения звука, а не для "звуковых объектов" (на мой взгляд, немного неудачное название).

Вы можете использовать Qt resources для хранения ваших файлов внутри вашего exe.

2 голосов
/ 19 октября 2011

QSound относительно примитивно.Модуль Qt Phonon имеет гораздо больше возможностей.

Вам следует взглянуть на класс MediaObject (может принимать байтовый массив в качестве входных данных) или, возможно,MediaSource class (реализуйте пользовательский QIODevice поверх вашего API для сериализации).

Тем не менее, большой модуль Phonon может не подходить для вашего варианта использования.

Другой вариантбыть модулем QtMultimedia и классом QAudioOuput, который также может принимать QIODevice в качестве источника данных.

...