WebPlugin

From Ace Stream Wiki
Jump to: navigation, search

Атрибуты тега embed

Чтобы встроить плагин в веб-страничку, используйте следующий шаблон <embed>:

<embed type="application/x-acestream-plugin" />
<object classid="clsid:79690976-ED6E-403c-BBBA-F8928B5EDE17"></object>

Обязательные элементы

  • width: Задает ширину плагина.
  • height: Задает высоту плагина.

Необязательные элементы

  • bgcolor (string): Задает цвет фона видеоплеера. По умолчанию: #000000
  • fontcolor (string): Задает цвет шрифта. По умолчанию: #FFFFFF
  • videobgcolor (string): Задает цвет фона видеоплеера при проигрывании видео. По умолчанию: #000000
  • fscontrolsenable (bool): Указывает включена ли панель управление в полноэкранном режиме. По умолчанию: true
  • nofscontrolsenable (bool): Указывает включена ли панель управления. По умолчанию: false
  • loopable (bool): Указывает повторяется ли видео после окончания. По умолчанию: false
  • fscontrols (string): Задает стиль панели управления в полноэкранном режиме. По умолчанию: default
  • nofscontrols (string): Задает стиль панели управления. По умолчанию: default
  • nofscontrolsheight (integer): Задает высоту панели управления в пикселях. По умолчанию: 36

Javascript API

Некоторое описание

Общие свойства только для чтения

  • version (string): версия плагина
  • auth (integer): уровень доступа пользователя
  • info (string): информационная строка
  • status (string): строка статуса
  • error (string): строка ошибки
  • state (integer): состояние движка (0 - бездействующий, 1 - пребуферизация, 2 - скачивание, 3 - буферизация, 4 - завершено, 5 - проверка скачивания, 6 - ошибка, 7 - плагин подключается к движку, 8 - производится загрузка плейлиста)

Плейлист

свойства только для чтения

  • playlistCount (integer): количество пунктов в плейлисте
  • playlistIsPlaying (bool): true, если данный пункт плейлиста проигрывается
  • playlistCurrentItem (integer): индекс с нуля данного пункта плейлиста

методы

  • void playlistAdd(string mrl, string name = ""): добавить пункт плейлиста как MRL
  • void playlistPlay(int position = 0): начать проигрывание данного пункта плейлиста
  • void playlistPlayItem(int index, intposition = 0, bool stop_current = true): начать проигрывание пункта с идентификатором "index"
  • void playlistTogglePause(): переключать состояние паузы для данного пункта плейлиста
  • void playlistStop(bool fullstop=false): остановить проигрывание данного пункта плейлиста. Если fullstop равен true, то плагин сообщает движку остановить загрузку данного пункта
  • void playlistNext(): перейти к следующему пункту плейлиста
  • void playlistPrev(): перейти к предыдущему пункту плейлиста
  • void playlistClear(): очистить данный плейлист (все пункты будут удалены из плейлиста)
  • void playlistRemoveItem(int index): удалить из плейлиста пункт с идентификатором "index"
  • string playlistItemTitle(int index): получить название указанного пункта
  • string playlistItemInfohash(int index): получить инфо-хеш указанного пункта
  • int playlistItemState(int index): получить состояние указанного пункта (0 - отключен, 1 - включен)
  • bool playlistItemIsSaveable(int index): проверить можно ли сохранить указанный пункт на диск
  • void playlistItemSave(int index): сохранить указанный пункт на диск (будет показан диалог для выбора места, куда сохранить)
  • void playlistSetItemState(int index, bool active): установить состояние пункта (включен/отключен)
  • void playlistToggleItemState(int index): переключить состояние пункта
  • void playlistMoveItem(int indexfrom, int indexto): передвинуть пункт на другую позицию плейлиста
  • void playlistSelectAll(): включить все пункты плейлиста
  • void playlistSelectNone(): отключить все пункты плейлиста
  • эти методы используются для загрузки плейлиста из указанного источника:
    • string playlistLoad(string torrentUrl, int developerId, int affiliateId, int zoneId): загрузить из торрента, указанного torrentUrl
    • string playlistLoadInfohash(string infohash, int developerId, int affiliateId, int zoneId): загрузить через инфо-хеш
    • string playlistLoadPlayer(string contentId): загрузить через content id (идентификатор контента)
    • string playlistLoadRaw(string torrentData, int developerId, int affiliateId, int zoneId): загрузить из необработанных данных торрента (содержимое торрент-файла закодировано в base64)
каждый метод возвращает строку, содержащую список пунктов в формате json
параметры developerId, affiliateId и zoneId должны быть установлены на 0, если вы не знаете, что с ними делать
  • эти методы такие же, как предыдущие, кроме того, что они выполняются асинхронно и возвращаются мгновенно:
    • void playlistLoadAsync(string torrentUrl, int developerId, int affiliateId, int zoneId)
    • void playlistLoadAsyncInfohash(string infohash, int developerId, int affiliateId, int zoneId)
    • void playlistLoadAsyncPlayer(string contentId)
    • void playlistLoadAsyncRaw(string torrentData, int developerId, int affiliateId, int zoneId)
  • void playlistLoadUrl(string url, int developerId, int affiliateId, int zoneId, string name, bool clear_playlist = false): добавить url в плейлист. Этот url будет использоваться движком для извлечения контента. Параметр name используется, чтобы задать название пункта в плейлисте. Если clear_playlist равен true, то плейлист будет очищен перед добавлением нового пункта
  • string playlistGetPlayerId(string infohash, int developerId, int affiliateId, int zoneId): получить content id для заданных infohash, developer, affiliate и zone идентификаторов

Аудио

свойства только для чтения

  • audioCount (integer): количества доступных аудио дорожек

свойства для чтение/писания

  • audioMute (bool): логическое значение для отключения или включения звука
  • audioVolume (interger): значение между 0 и 100, указывающее процент громкости
  • audioTrack (integer): значение между 1 и plugin.audioCount, указывающее аудио дорожку для проигрывания или которая уже проигрывается. Значение равное 0 означает, что аудио отключено или будет отключено
  • audioChannel (integer): целое значение между 1 и 5, указывающее, какой режим аудио канала используется, значение могут быть: "1=stereo", "2=reverse stereo", "3=left", "4=right", "5=dolby". Используйте plugin.audioChannel, чтобы проверить успешно ли прошла установка режима аудио канала

методы

  • void audioToggleMute(): логическое переключение, которое отключает и включает звук аудио, основываясь на предыдущем состоянии
  • string audioDescription(int i): дает имя аудио дорожке номер i. 0 соответствует отключению, а 1 - первой аудио дорожке

Входящие значения

свойства только для чтения

  • inputLength (integer): длина входящего файла в миллисекундах. 0 возвращается для 'живых' потоков (live stream) или клипов, чью длину движок не может определить. Функция возвращает -1, если нет проигрываемых входящих файлов.
  • inputState (integer): действующее состояние входной цепи, заданное перечислением (IDLE=0 (бездействие), OPENING=1 (открывается), BUFFERING=2 (буферизация), PLAYING=3 (проигрывается), PAUSED=4 (пауза), STOPPING=5 (остановка), ENDED=6 (завершено), ERROR=7 (ошибка)). Примечание: Протестируйте ENDED=6, чтобы словить окончание проигрывания. Проверки STOPPING=5 НЕ ДОСТАТОЧНО.
  • inputFps (float): кадров в секунду, возвращает плавающее значение (обычно 60.0, 50.0, 23.976, и т.д..)
  • inputHasVout (bool): boolean, который возвращает значение true, когда видео показывается, и значение false, когда видео не показывается
  • inputIsAd (bool): true, если реклама сейчас воспроизводится
  • inputIsInterruptableAd (bool): true, если прерываемая реклама сейчас воспроизводится
  • inputIsP2P (bool): true, если данный пункт проигрывается с помощью P2P (не обычный файл/поток)

свойства для чтение/писания

  • inputPosition (float): нормализованное положение пункта в мультимедиа потоке, заданное в плавающем значении между [0.0 - 1.0]
  • inputTime (integer): абсолютное положение во времени, в миллисекундах; данное свойство может использоваться для поиска через поток
  • inputRate (float): входящая скорость, заданная плавающим значением (1.0 для нормальной скорости, 0.5 для половины скорости, 2.0 для ускорения в два раза, и т.д.)

Субтитры

свойства только для чтения

  • subtitleCount (integer): возвращает количество доступных субтитров

свойства для чтение/писания

  • subtitleTrack (integer): получить и установить дорожку субтитров для показа на видео экране. Свойство принимает целое число, в качестве входящего значения [1..65535]. Если дорожка субтитров установлена на 0, субтитры будут отключены. Если установлено значение, превышающее количество действующих дорожек субтитров, будет возвращено значение -1 и показано сообщение об ошибке

методы

  • string subtitleDescription(int i): задает имя субтитру номер i. 0 соответствует отключению, а 1 - первому субтитру

Видео

свойства только для чтения

  • videoWidth (integer): возвращает горизонтальный размер видео
  • videoHeight (integer): возвращает вертикальный размер видео

свойства для чтение/писания

  • videoFullscreen (bool): когда установлено true, видео будет показываться в полноэкранном режиме; когда установлено false, видео будет показано внутри размера выходного видео
  • videoAspectRatio (string): получить и установить соотношение сторон, чтобы использовать для видео экрана. Обычные значение: "1:1", "4:3", "16:9", "16:10", "221:100" и "5:4"
  • videoCrop (string): получить и установить кадрирование, чтобы использовать для видео экрана. Обычные значение: "16:9", "16:10", "185:100", "239:100", "5:3", "4:3", "5:4", "1:1"
  • deinterlaceStatus (string): возможные значения: "off", "auto", "on"
  • deinterlaceMode (string): возможные значения: "discard", "blend", "mean", "bob", "linear", "x", "yadif", "yadif2x"

методы

  • void videoToggleFullscreen(): переключать полноэкранный режим, основываясь на предыдущих настройках

Примеры

Вставка плагина в веб-страничку (для всех браузеров, кроме Internet Explorer):

<!DOCTYPE html>
<html>
<head>
    <title>Plugin Test</title>
</head>
<body>
    <embed id="plugin" type="application/x-acestream-plugin"
        width="800"
        height="600"
        fullscreencontrols="true"
        fscontrolsenable="true"
        fscontrols="default"
        nofscontrolsenable="true"
        nofscontrols="default"
        nofscontrolsheight="36"
        loopable="false" />
</body>
</html>

Вставка плагина в веб-страничку (Internet Explorer):

<!DOCTYPE html>
<html>
<head>
    <title>Plugin Test</title>
</head>
<body>
    <object id="plugin" classid="clsid:79690976-ED6E-403c-BBBA-F8928B5EDE17">
        <param name="width" value="800" />
        <param name="height" value="600" />
        <param name="fullscreencontrols" value="true" />
        <param name="fscontrolsenable" value="true" />
        <param name="fscontrols" value="default" />
        <param name="nofscontrolsenable" value="true" />
        <param name="nofscontrols" value="default" />
        <param name="nofscontrolsheight" value="36" />
        <param name="loopable" value="false" />
    </object>
</body>
</html>

Загрузите плейлист из торрента или с помощью content id:

<script type="text/javascript">
var plugin = document.getElementById("plugin");

// загрузка из торрента
plugin.playlistLoadAsync("http://static.torrentstream.org/torrents/sintel.torrent", 0, 0, 0);

// загрузка с помощью content id
plugin.playlistLoadAsyncPlayer("5953213c22c304b4f2aab0029a0915fbadca3f8a");
</script>