ГлавнаяСправка по использованию серверного ActionScriptКласс Stream › Stream.record()

Stream.record()

myStream.record(flag, [maxDuration, maxSize])

Записывает данные проходящие через объект Stream и создает отдельный файл записанного потока. Этот метод можно использовать для следующих целей:

  • Вызовом Stream.record() можно записать новый файл или перезаписать записанными данными, данные в существующем файле.

  • Вызовом Stream.record("append") можно прикрепить записанные данные в конец существующего файла.

  • вызовом Stream.record(false) можно остановить запись.

Записывать и прибавлять к записи можно в форматах F4V или FLV. Перед вызовом метода Stream.record(), нужно вызвать метод Stream.get() что бы создать объект типа Stream. Формат записи устанавливается, основываясь на имени файла передаваемого методу Stream.get().

Примечание: Перед тем как проигрывать или редактировать F4V файлы записанные с помощью Flash Media Server в других утилитах, следует применить утилиту Adobe Flash Media Server F4V Post Processor.
Эту утилиту можно найти на странице www.adobe.com/go/fms_tools.

Когда вы записываете поток, сервер создает файл с именем переданным методу Stream.get(). Сервер автоматически создает папку „streams“ а так же подпапки с именем каждого экземпляра приложения. Если поток не связан с определенным экземпляром приложения, он будет сохранен в подпапку с именем „_definst_“ (экземпляра по умолчанию\default instance). Например, поток приложения по умолчанию lecture будет размещен здесь: applications\lectures\streams\_definst_. Поток для экземпляра monday приложения lecture будет помещен в папку: applications\lectures\streams\monday.

Что бы прикрепить поток прямого эфира к концу файла, имя потока передаваемое методу Stream.get() должно отличатся от имени потока прямого эфира переданного методу клиентской стороны NetStream.publish(). В остальных случаях, имена клиентских и серверных потоков могут быть одинаковыми.

Доступно с версии сервера

Flash Communication Server 1

Параметры

flag
Одно из следующих значений: "record", "append", или false. Если значение равно "record", файл с данными будет перезаписан, если такой существует. Если значение равно "append", поступающие данные будут прикреплены в конец существующего файла. Если значение равно false, все предшествующие процессы записи будут остановлены. Значением по умолчанию является "record".

maxDuration
Необязательный параметр, устанавливающий максимальную продолжительность записи (в секундах). Когда публикация потока выходит за пределы указанной продолжительности, запись останавливается и сообщение статуса “NetStream.Record.Stop” отправляется в обработчик событий onStatus определенный для данного потока. Если задать этот параметр, значение элемента MaxDuration указанное в настроечном файле Application.xml будет перезаписано. Тем не менее, выйти за границы, установленные в секции MaxDurationCap нельзя. Если для этого параметра задать значение равное -1, это снимает ограничение продолжительности записи. Значением по умолчанию равно -1.

Примечание: Если оперативное событие происходит за рамками значений, указанными в параметрах maxDuration или maxSize, запись будет остановлена. Когда останавливается запись, сервер передает статусное сообщение "NetStream.Record.DiskQuotaExceeded" методу NetStream.onStatus() раньше статусного сообщения "NetStream.Record.Stop" .

maxSize
Необязательный параметр устанавливающий максимальный размер записи (в килобайтах). Когада публикуемый поток превышает указанный размер, запись останавливается и сообщение статуса “NetStream.Record.Stop” отправляется в обработчик событий onStatus определенный для данного потока. Если задать этот параметр, значение элемента MaxSize указанное в настроечном файле Application.xml будет перезаписано.Тем не менее, выйти за границы, установленные в секции MaxSizeCap нельзя. Если для этого параметра задать значение равное -1, это снимает ограничение размера записи. Значением по умолчанию равно -1.

Возвращает

Булеву величину равную true если запись начинается успешно; в противном случаи, false.

Пример

В следующем примере показаны, клиент публикующий поток в прямом эфире, сервер записывающий поток и клиент, подписывающийся на записанный поток.

Первое. Клиент публикует поток:

myNetStream.publish("clientStream", "live");

Далее, сервер открывает поток с именем serverStream и помещает его в объект s типа Stream. Серверный код проигрывает и записывает публикуемый клиентом поток в формате F4V. Имя записанного файла “serverStream.f4v”, что и является именем передаваемым методу Stream.get().

//Начинаем запись 
s = Stream.get("mp4:serverStream.f4v"); 
if (s){ 
    s.record(); 
    s.play("clientStream"); 
} 
// Останавливаем запись. 
s = Stream.get("serverStream"); 
if (s){ 
    s.record(false); 
}

Клиент, может использовать код, указанный ниже, для того что бы подписаться на вещание потока прямого эфира, опубликованного клиентом и записанного на сервере:

someNetStream.play("mp4:serverStream.f4v");

Смотрите также

Stream.get(), Stream.play()

Остальные методы и свойства

Ярлыки: , ,

  1. Пока без комментариев.
  1. Пока нету.