Qt MediaPlayer воспроизводит аудио из памяти - PullRequest
2 голосов
/ 12 июля 2011

Я занимаюсь разработкой музыкального проигрывателя для Symbians и мне необходимо воспроизводить необработанные аудиоданные (PCM) из памяти телефона.Я попробовал QAudioOutput, который отлично работает (через Qbuffer - iherits QIODevice), но это слишком много низкоуровневого API и поэтому не подходит для меня.Итак, я нашел Phonon и QMediaPlayer.Я не могу заставить Phonon работать ни на моем телефоне, ни на Windows.Тем не менее, в Windows я могу воспроизводить файлы, но не QBuffers ... странно.

Однако сейчас я хочу использовать QMediaPlayer, но не нашел способа воспроизведения необработанных данных из памяти.В QMediaContent есть только конструктор QUrl.

Есть ли какой-нибудь вариант, как играть на QMediaPlayer из QBuffer, QDataStream, QByteArray ... что-нибудь из памяти?

Любые предложения будут отличными, спасибо:).

1 Ответ

0 голосов
/ 14 июля 2011

На рабочем столе я использую простой GStreamer (без фононного слоя) для воспроизведения из памяти.Бэкэнды Phonon плохо обрабатывают медиа из памяти (QIODevice).Из документации Qt:

Предупреждение. В Windows мы поддерживаем только устройства QIOD, содержащие форматы avi, mp3 или mpg.Используйте конструктор, который принимает имя файла для открытия файлов (внутренний интерфейс Qt не использует QFile для внутреннего использования).

...