2012-12-24 6 views
9

Я хочу использовать элемент QML в своем приложении и воспроизводить видео из пользовательского потока. QMediaPlayer, похоже, поддерживает это, так как вы можете сказать, что он читает от QIODevice, который может делать все, что угодно. Но MediaPlayer поддерживает только URL.Обработчик обработчика пользовательских URL-адресов Qt 5

Есть ли способ зарегистрировать мою собственную схему URL-адресов, которая использует мой собственный протокол потоковой передачи? Так, например, сказать, что я хотел сделать rtsp2://..., я мог сделать что-то смутно, как:

class Rtsp2 : public QIODevice 
{ 
    // open, read, seek, close, etc. 
} 

QCoreApplication::registerUrlProtocol("rtsp2", Rtsp2); 
+1

Handeling URL'ами, ОС specifick. –

ответ

2

Я не смотрел на детали, но двигатель QML имеет QNetworkAccessManager он использует для подключения. Вы можете добавить свои собственные протоколы на уровне QNAM путем подкласса и подключения createRequest. Однако я подозреваю, что QMediaPlayer может не использовать этот QNAM для загрузки мультимедиа, поскольку базовый медиа-уровень часто предоставляет свою собственную абстракцию ввода-вывода.

(Кроме того, добавление пользовательских протоколов к QNAM не совсем тривиальна - в идеале было бы простой вызов «registerProtocolFor», но к сожалению это не так)

Смежные вопросы