Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: потоковое воспроизведение Phonon как?  (Прочитано 1022 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн danya

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
потоковое воспроизведение Phonon как?
« : 21 Сентябрь 2011, 22:46:43 »
кто нибудь знает как это сделать?

Оффлайн yuberion

  • Участник
  • *
  • Сообщений: 147
    • Просмотр профиля
Re: потоковое воспроизведение Phonon как?
« Ответ #1 : 22 Сентябрь 2011, 01:08:11 »
Если просто(без буферизации) - можно установить ресурс у объекта MediaObject методом MediaObject::setCurrentSource
mediaObject->setCurrentSource(Phonon::MediaSource("http://site.com/stream.mp3"));

Оффлайн danya

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: потоковое воспроизведение Phonon как?
« Ответ #2 : 22 Сентябрь 2011, 23:06:25 »
а как быть с буферизацией?

Оффлайн yuberion

  • Участник
  • *
  • Сообщений: 147
    • Просмотр профиля
Re: потоковое воспроизведение Phonon как?
« Ответ #3 : 23 Сентябрь 2011, 00:40:30 »
Нужно создать QByteArray, задать ему размер равный размеру допустим mp3 файла и заполнить 'нулями'.
QByteArray *ba = new QByteArray(cLenght, '\0'); // cLenght - размер целого файла

Потом создать объект QBuffer и назначить ему методом QBuffer::setBuffer созданный ранее QByteArray. Также буфер открыть для чтения и записи.
QBuffer *buffer = new QBuffer(mediaObject); // Родителем указываем медиа-объект фонона
buffer->setBuffer(ba);
buffer->open(QBuffer::ReadWrite);

При поступлении данных, заменять блоками данные в QByteArray методом QByteArray::replace
ba->replace(lastPos, blockSize, data);

mediaObject'у фонона передаем ресурс методом MediaObject::setCurrentSource
mediaObject->setCurrentSource(buffer);

Данные получаем посредством QNetworkAccessManager и QNetworkReply

Оффлайн Grayscale

  • Активист
  • *
  • Сообщений: 573
    • Просмотр профиля
Re: потоковое воспроизведение Phonon как?
« Ответ #4 : 02 Июнь 2014, 04:13:22 »
Простите за некропостинг, но я сделал так, как описал yuberion, но во время писанины в QByteArray у меня Phonon останавливает воспроизведение и продолжает проигрывать заново, и так пока весь файл не скачается. Засада. Что делать?

Пользователь решил продолжить мысль 02 Июнь 2014, 15:29:32:
« Последнее редактирование: 02 Июнь 2014, 15:35:56 от Grayscale »
В мире столько разнообразной фигни.. И в каждой найдется специалист
ASUS K46CB(S46CB) i7-3537U @ 2.0GHz 8Gb RAM + SSD 64 Gb + Manjaro Linux

 

Страница сгенерирована за 0.115 секунд. Запросов: 24.