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

NetStream.publish()

ns.publish(name, howToPublish)

Публикует поток на удаленный сервер. С помощью обработчика событий NetStream.onStatus() желательно проверять, принял ли удалённый сервер публикующую сторону. Если поток был уже опубликован другим клиентом, вызов publish() дойдя до удалённого сервера может вызвать сбой. В этом случаи удалённый сервер отправляет сообщение о статусе "NetStream.Publish.BadName" которое можно видеть в методе NetStream.onStatus().

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

Flash Media Interactive Server 3 и Flash Media Development Server 3

Параметры

name
Строка, определяющая поток, который нужно опубликовать. Если передать false, публикация потока прекратится. Нужно использовать следующий синтаксис:

Формат файла

Синтаксис

FLV

ns.publish("filename")

MP3

ns.publish("mp3:filename") Это не работает. Ошибка в документации.

ns.publish("id3:filename")

MP4

ns.publish("mp4:filename")

ns.publish("mp4:filename.mp4")

ns.publish("mp4:filename.f4v")

howToPublish
Необязательное строковое значение, определяющее как нужно публиковать поток. Действительными значениями являются "record", "append" и "live". Значением по умолчанию является "live". Если этот параметр опустить или передать "live", живой эфир начнет публиковаться, но при этом не будет записываться. Если файл с таким именем уже существует на удалённом сервере, он будет удалён.

Примечание: В случаи если такой файл доступен только для чтения, живой эфир будет опубликован, но файл не будет удалён.

Если передать "record", поток будет опубликован, и данные будут записаны в новый файл. В случаи если файл уже существует, он будет перезаписан. Если передать в качестве параметра "append", поток будет опубликован и данные добавятся к существующему файлу, указанному в name. Если же файл не найден, он будет создан.

Сервер хранит записанные потоки в подпапках потоков находящихся внутри папки приложения , например, RootInstall/applications/sampleApplication/_definst_/streams. Записанный файл имеет имя переданное в параметре name. Так, например, NetStream.publish ("mp4:streamname.f4v", "record") создаст файл с именем streamname.f4v.

Пример

application.onPublish = function(client, myStream){ 
    nc = new NetConnection(); 
    nc.connect("rtmp://example.com/myApp"); 
    ns = new NetStream(nc); 
    ns.attach(myStream); 
    ns.publish(myStream.name, "live"); 
};

В этом примере показано как на удалённом сервере записать файл в формате F4V.

application.onPublish = function(client, myStream){ 
    nc = new NetConnection(); 
    nc.connect("rtmp://example.com/myApp"); 
    ns = new NetStream(nc); 
    ns.attach(myStream); 
    ns.publish("mp4:" + myStream.name, "record"); 
};

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

Ярлыки: , ,

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