Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.04.2015, 00:08
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 1  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
С прошлой проблемы справился при помощи МЕГА-костыля

Код AS3:
//эта функция повешена на кнопке "сделать скрин" на панели плеера
public function clickScreen(e:MouseEvent=null):void {
                 //здесь добавляю мувик SkrinPanel, делающий маленький скрин и заслоняющий собой видео;
                 //в котором строка подтверждения "вы действительно хотите?" и кнопки yes/no;
                 skrinPanel = new SkrinPanel(actualPlayer().videoStream.mediaPlayerSprite.mediaContainer));
                 //теперь делаю видеопоток, с которого делается скрин, максимально возомжного для потока разрешения
                 //пользователь этого не видит, так как видео заслоняет статичная картинка, а видео маскируется
                 actualPlayer().videoStream.sizeToSkrin(true);
                 }
 
//эта функция вызывается по нажатию кнопки yes в skrinPanel 
public function ScreenShot():void {
                //в которой и происходит копирование с видео большого разрешения
                var raw:BitmapData = new BitmapData(videoStream.getmpWIDTH(), videoStream.getmpHEIGHT());
                     raw.draw(videoStream.mediaPlayerSprite.mediaContainer, new Matrix());
                var brr:ByteArray = new ByteArray();
                     brr = new PNGEncoder().encode(raw);
                filArr.push(new FileReference());
                var nameSTR:String = 'streamPlayer_screenshot_'+String(Math.floor(Math.random()*100000))+String(videoStream.hronometrash)+'.png';
                filArr[filArr.length-1].save(brr, nameSTR);
 
                resizePlayer();
               //теперь можно удалять заслонку и возвращать видео к исходному размеру
               videoStream.sizeToSkrin(false);
}
НО

теперь возникла другая проблема. Сейчас требуется расширить плеер, чтобы через него можно было воспроизводить HDS, в данном случае - поток с расширением .f4m . Вот тут все стопорится на самом первом скрине - так как он вообще совсем не хочет скриниться, на первый же .draw пишет
Код:
SecurityError: Error #2123: Security sandbox violation: BitmapData.draw: file:///Z|/home/test1.ru/www/strimPlayer.swf cannot access null. No policy files granted access.
	at flash.display::BitmapData/draw()
дравить пробовал уже всё, что можно. Ни в какую. Печально и то, что кое-где из англоязычных источников написано, что это вроде как вообще невозможно! Что представляется мне очень странным. Неужели это в действительности так?
__________________
while(live()) { hope(); }

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
osmf , screenshot
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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