Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как добавить ActionScript в Media Components (http://www.flasher.ru/forum/showthread.php?t=80705)

Agro 04.06.2006 21:55

Как добавить ActionScript в Media Components
 
У меня такая проблема, мне нужно добавить NetStream.setBufferTime() в MediaController, то есть мне нужно контролировать размер части flv файла записывающейся в буффер внутри медиа компонента. И, если кто знает, какая величина буффера задана по умолчанию. А вообще, хотелось бы знать, как можно добавить ActionScript в любой флеш компонент. Заранее благодарен.

iNils 04.06.2006 22:12

В MediaController вроде этого нет, но в FLVPlayback есть точно.
Я про буффер.

Agro 04.06.2006 22:22

А что такое FLVPlayback, я знаю только MediaPlayback. Я работаю в 7-ой версии Флеш и FLVPlayback не вижу среди медиа компонентов. А как насчёт "добавить ActionScript в любой флеш компонент", можешь что-нибудь подсказать?

iNils 04.06.2006 22:37

FLVPlayback это из 8-ки.
Про добавить не знаю, я очень редко использую стандартные компоненты.

Agro 04.06.2006 22:48

Цитата:

Сообщение от iNils
Про добавить не знаю, я очень редко использую стандартные компоненты.

Я тоже очень редко использую стандартные компоненты, но задумался последнее время, а правильно ли это. Они могут очень облегчить жизнь.

iNils 04.06.2006 22:53

Цитата:

Сообщение от Agro
Я тоже очень редко использую стандартные компоненты, но задумался последнее время, а правильно ли это. Они могут очень облегчить жизнь.

Или затруднить :)
Подожди ответа знатоков компонентов, может что и скажут.

Agro 04.06.2006 23:59

Спасибо. Будем ждать.

Nirth 05.06.2006 02:47

Я бы не стал ничего добавлять, а сдела оболочку, имхо удобней ввиде класса
в классе продублировать нужные тебе методы, и добавить свои.

Agro 05.06.2006 03:20

А медиа компоненты какой это класс, с чего наследовать?

iNils 05.06.2006 03:23

Media

Nirth 05.06.2006 03:25

я же говорю наследовать не стоит, тебе нужно будет добавлять графику и тд, щас искал в хелпе, не нашел где, нашел в хелпе по Flex 1.5, но аналогичные действия во флэше, не дали результата.

Сделать лучше думаю так.
Без класса:
Вставить в мувик твой медиа контролер и просто дублировать методы, нужные тебе
например
Код:

function displayFull() {
    //myMedia - экземпляр медиа контроллера, который собственно лежит
    // в мувике
  myMedia.displayFull();
}

и так далее, потом просто дописываешь свои методы.

Agro 05.06.2006 12:11

Всё равно не очень понятно, как например будет выглядеть метод setBufferSize для медиа контролера? И ещё, может кто знает, где находятся все скрипты для компонентов, я уверен что они входят в пакет Флеш, но куда они попадают при инсталяции и как называется файл скрипта для медиа компонент, не знаю.

Reijii 05.06.2006 12:24

что касается компонентов:
Код:

/**
 Requires:
  - FLVPlayback component on the Stage with an instance name of my_FLVPlybk
*/
import mx.video.*;
my_FLVPlybk.bufferTime = 8;
my_FLVPlybk.contentPath = "rtmp://host_name/somefolder/vid_name.flv";

но когда я проигрывал Flv, я пользовался NetStream. в хелпе нормлаьно о нем расписанно, там есть все что нужно для полноценного проигрывания.

а вообще по личному опыту скажу, мне пришлось работать со стандартными компонентами и не скажу что сильно они мне облегчили жизнь, местами даже очень и не облегчили. так как уж очень все там закопано-зарыто, и не всегда удобно, + их весь не соответствует их возможностям :)

KPaul 05.06.2006 13:35

Я реализовывал динамическую буфферизацию, так мне пришлос расширять как минимум mx.controls.MediaDisplay и mx.controls.streamingmedia.RTMPPlayer(или FLVPlayer).
Расширять MediaDisplay по большому счету нужно только для того чтобы использовать расширенный RTMPPlayer(или FLVPlayer). У каждого из них есть приватный член _ns:NetStream, который и нужно контролировать (setBufferTime).
Для наглядности можно достать нет стрим положив на всю приватность, то есть обратиться следующим образом:
Код:

myMediaDisplay["_playerImpl"]["_ns"].setBufferTime(2)
По умолчанию буффер устанавливается на 5 сек.

Agro 05.06.2006 16:23

Цитата:

Сообщение от KPaul
Я реализовывал динамическую буфферизацию, так мне пришлос расширять как минимум mx.controls.MediaDisplay и mx.controls.streamingmedia.RTMPPlayer(или FLVPlayer).
Расширять MediaDisplay по большому счету нужно только для того чтобы использовать расширенный RTMPPlayer(или FLVPlayer). У каждого из них есть приватный член _ns:NetStream, который и нужно контролировать (setBufferTime).
Для наглядности можно достать нет стрим положив на всю приватность, то есть обратиться следующим образом:
Код:

myMediaDisplay["_playerImpl"]["_ns"].setBufferTime(2)
По умолчанию буффер устанавливается на 5 сек.

Спасибо. Это точно то, что мне нужно. Но есть несколько дополнительных вопросов:
1. Работает ли этот код во Флеш 7?
2. Что такое ["_playerImpl"]?
3. Откуда ты узнал о существовании _ns:NetStream?
4. Где находится сам скрипт для компонентов? Это я к тому, что если завтра мне понадобится расширить другой компонент, то мне нужно будет где-нибудь достать спецификацию для интересующего меня класса.

KPaul 05.06.2006 18:36

1. Да. Компоненты v2 работают и под 6-ку(исключение r65). Только совмещать v1 и v2 нельзя.
2. Получаем доступ к реализованному плееру(player implemented),
то есть к RTMPPlayer или к FLVPLayer, в зависимости от типа медии (стрим или прогрессив). Инициализируется при вызове метода setMedia().
3. Реализацию плееров можно посмотреть в пакете mx.controls.streamingmedia.
4. Если он поставляется с пакетом mx, можно поискать его в этом пакете, примерно здесь:
C:\Documents and Settings\[userName]\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes\mx


Часовой пояс GMT +4, время: 23:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.