|
<< Нажмите, чтобы показать Содержание >> TRVCamSender.SendMediaAccessRequest, SendMediaAccessCancelRequest |
Методы для работы со списком получателей по умолчанию.
procedure SendMediaAccessRequest(const GUID: TRVMAnsiString;
ADataType: Word = RVMEDIA_DATA);
procedure SendMediaAccessCancelRequest(const GUID: TRVMAnsiString;
ADataType: Word = RVMEDIA_DATA);
Эти методы работают только в том случае, если отправитель подключен к TRVMediaServer по сети в качестве составной части клиента.
SendMediaAccessRequest отправляет запрос клиенту, идентифицированному по GUID; в ответ этот клиент может начать отправку данных (обычно видео и аудио) запрашивающему.
SendMediaAccessCancelRequest отправляет запрос клиенту, идентифицированному по GUID; в ответ этот клиент должен прекратить отправку данных запрашивающему.
Технически, эти методы отправляют специальные команды, подобно SendCmd.
Параметры:
GUID – идентификатор другого клиента, от которого запрашиваются медиаданные. Если GUID пуст, используется свойство GUIDTo. Если он также пуст, запрос отправляется группе GUIDGroup.
ADataType – зарезервировано для будущего использования (планируется: будет содержать список типов данных, для которых делается запрос, может содержать константы ***_DATA (объединяемые с помощью оператора «или»). Если этот параметр не указан, предполагается аудио и видео).
Пример:
К медиасерверу подключены два клиента, Клиент-A и Клиент-B. Клиент-A состоит из RVCamSenderA и RVCamReceiverA, Клиент-B состоит из RVCamSenderB и RVCamReceiverB. Идентификатор Клиента-A — GUID_A, идентификатор Клиента-B — GUID_B.
Клиент-A хочет получать видео и аудио от Клиента-B по сети. Он вызывает RVCamSenderA.SendMediaAccessRequest(GUID_B). В ответ происходит событие TRVCamReceiverB.OnMediaAccessRequest. В этом событии Клиент-B (если он согласен отправлять видео и аудио Клиенту-A) вызывает TRVCamSenderB.AllowMediaAccess(GUID_A).
Далее Клиент-A больше не хочет получать видео и аудио от Клиента-B. Он вызывает RVCamSenderA.SendMediaAccessCancelRequest(GUID_B). В ответ происходит событие TRVCamReceiverB.OnMediaAccessCancelRequest. В этом случае Клиент-B должен вызвать TRVCamSenderB.CancelMediaAccesss(GUID_A).