Видео в приложении Qt S60? - PullRequest
       35

Видео в приложении Qt S60?

1 голос
/ 01 октября 2009

Кто-нибудь создал приложение Qt S60 (3-е издание, FP2), которое воспроизводит (потоковое или локальное) видео?

Я хочу воспроизводить видео «в» виджете, а не с (скажем) QDesktopServices.

Я знаю, что есть документация о том, как сделать это с Symbian, например здесь и здесь но я все еще застрял.

(Заранее извиняюсь за перекрестную публикацию: я спрашивал в другом месте, но безуспешно.)

1 Ответ

5 голосов
/ 01 октября 2009

Qt 4 включает в себя набор мультимедийных API, называемых Phonon, которые позволяют вам делать это. В настоящее время они внедряются для Symbian - пока предварительный релиз Qt для S60 "Tower" не включает поддержку Phonon в Symbian, Qt 4.6 подойдет.

Между тем, единственный вариант - использовать API-интерфейсы Symbian MMF напрямую. В частности, ваш видео-виджет - или принадлежащий ему объект - должен будет создать экземпляр CVideoPlayerUtility и, следовательно, должен реализовать MVideoPlayerUtilityObserver. API проигрывателя видео требует, чтобы клиент предоставил RWindow для отображения видео - это можно получить, вызвав QWidget::winId(), который возвращает указатель CCoeControl*. Поэтому вы можете получить дескриптор окна, вызвав

RWindow& window = *static_cast<RWindow*>(widget->winId()->DrawableWindow())

В целом, однако, воспроизведение видео из приложения Qt (или любого другого приложения) на Symbian в настоящее время требует довольно большой работы, особенно если вы хотите поддерживать динамическое изменение размера и / или изменение положения видеоконтента. , Также обратите внимание, что способ, которым Qt в настоящее время реализован в Symbian, означает, что перемещение других виджетов (частично или полностью) поверх виджета видео будет работать некорректно - видео будет продолжать отображаться сверху. Это связано с тем, что вызов QWidget::winId() в настоящее время не приводит к тому, что Qt создает собственное окно Symbian, и будет исправлен в 4.6.

Таким образом, если вы не торопитесь делать это, вероятно, лучше дождаться бета-версии 4.6, выход которой ожидается через несколько недель.

...