Класс NetStream предоставляет одностороннее соединение для передачи потоков между проигрывателем Flash Player или приложением AIR и сервером Flash Media или локальной файловой системой. (Класс NetStream также поддерживает промежуточную загрузку.) Объект NetStream — это канал внутри объекта NetConnection. Класс NetStream отправляет четыре связанные с DRM события:
Событие
|
Описание
|
drmAuthenticate
(только для AIR)
|
Задано в классе DRMAuthenticateEvent. Это событие отправляется, когда объект NetStream пытается воспроизвести защищенное содержимое, для которого пользователь должен ввести учетные данные для проверки подлинности перед воспроизведением.
Свойства этого события включают header, usernamePrompt, passwordPrompt и urlPrompt — их можно использовать для получения из задания учетных данных. Это событие повторяется, пока объект NetStream не получит действительные учетные данные.
|
drmError
|
Задано в классе DRMErrorEvent и отправляется, когда объект NetStream пытается воспроизвести защищенное содержимое и обнаруживает связанную с DRM ошибку. В частности, ошибка DRM объекта события отправляется при неуспешной авторизации пользователя. Эта ошибка может быть вызвана тем, что пользователь не приобрел права на просмотр содержимого. Другая возможная причина — поставщик содержимого не поддерживает программу просмотра.
|
drmStatus
|
Задано в классе DRMStatusEvent. Это событие отправляется, когда начинается воспроизведение защищенного содержимого (когда пользователь прошел проверку подлинности и получил разрешение на воспроизведение содержимого). Объект DRMStatusEvent содержит информацию, относящуюся к ваучеру. Ваучер содержит информацию о том, может ли содержимое просматриваться в автономном режиме, когда истекает срок действия ваучера и когда содержимое перестанет быть доступно для просмотра.
|
status
|
Задано в классе events.StatusEvent и отправляется, только когда приложение пытается воспроизвести защищенное содержимое путем вызова метода NetStream.play(). Код-значение свойства status равен DRM.encryptedFLV.
|
Класс NetStream включает следующие относящиеся к DRM методы, которые используются только в среде AIR:
Метод
|
Описание
|
resetDRMVouchers()
|
Удаляет все локально кэшируемые данные ваучера DRM. Приложение должно будет загрузить ваучер повторно, чтобы пользователь смог обращаться к зашифрованному содержимому.
Например, в следующем коде из кэша удаляются все ваучеры:
NetStream.resetDRMVouchers();
|
setDRMAuthenticationCredentials()
|
Передает набор учетных данных для проверки подлинности, а именно имя пользователя, пароль и тип проверки подлинности, в объект NetStream для выполнения проверки подлинности. Действительными типами проверки подлинности являются
"drm"
и
"proxy"
. Тип проверки подлинности
"drm"
сопоставляет учетные данные с информацией на сервере Adobe Access. При использовании типа проверки подлинности
proxy
проверка подлинности учетных данных выполняется на прокси-сервере; они должны совпадать с данными, запрашиваемыми прокси-сервером. Например, если программа используется сотрудником организации, то она должна пройти проверку подлинности на прокси-сервере, прежде чем пользователю будет разрешен доступ в Интернет. Параметр proxy разрешает этот тип проверки подлинности. Если проверка подлинности не анонимная, то после проверки подлинности на прокси-сервере пользователю все равно нужно пройти проверку подлинности в среде Adobe Access, чтобы получить ваучер и воспроизвести содержимое. Можно во второй раз использовать метод
setDRMAuthenticationCredentials()
с параметром "
drm
" для выполнения проверки подлинности в среде Adobe Access.
|
preloadEmbeddedMetadata()
|
Выполняется разбор встроенных метаданных в локальном мультимедийном файле. Если обнаруживаются относящиеся к DRM метаданные, AIR вызывает функцию обратного вызова
onDRMContentData()
.
|
Кроме того, в среде AIR объект NetStream вызывает функции обратного вызова
onDRMContentData()
и
onPlayStatus()
как результат обращения к методу
preloadEmbeddedMetaData()
. Функция
onDRMContentData()
вызывается, когда в мультимедийном файле обнаруживаются метаданные DRM. Функция
onPlayStatus()
вызывается по завершении синтаксического анализа файла. Функции
onDRMContentData()
и
onPlayStatus()
должны быть определены в объекте
client
, назначенном экземпляру класса NetStream. Если для предварительной загрузки ваучеров и воспроизведения содержимого используется один и тот же объект NetStream, дождитесь вызова
onPlayStatus()
, создаваемого методом
preloadEmbeddedMetaData()
, перед началом воспроизведения.
В приведенном ниже коде в среде AIR для проверки подлинности пользователя используются имя пользователя (administrator), пароль (password) и тип проверки подлинности drm. Метод setDRMAuthenticationCredentials() должен предоставлять учетные данные, которые совпадают с учетными данными, известными поставщику содержимого и принимаемыми им. Эти учетные данные являются теми же учетными данными, которые разрешают пользователю просмотр содержимого. Сюда не включен код для воспроизведения видео и проверки успешности соединения с потоком видео.
var connection:NetConnection = new NetConnection();
connection.connect(null);
var videoStream:NetStream = new NetStream(connection);
videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE,
drmAuthenticateEventHandler)
private function drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void
{
videoStream.setDRMAuthenticationCredentials("administrator", "password", "drm");
}
|
|
|