TRVCamSender.SendMediaAccessRequest, SendMediaAccessCancelRequest

<< Нажмите, чтобы показать Содержание >>

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).