PDA

Просмотр полной версии : скриншот с live-видео


arkc
26.06.2012, 11:01
Привет всем.

Суть проблемы: нужно получить скриншот из видео плеера
вот код:

private var videoObj: Video;

public function saveSShot(event: MouseEvent):void
{
var jPEGEncoder:JPEGEncoder = new JPEGEncoder(500);
try {
var imageSnapshot:ImageSnapshot = ImageSnapshot.captureImage(videoObj, 0, jPEGEncoder);
}catch (e: Error) {
log(e.name);
log(e.message);
}
var fileReference:FileReference = new FileReference();
fileReference.save(imageSnapshot.data, "img123.jpg");
}

т.е. тыкаем кнопочку -> получаем окошко куда сохранить файл.
Все прекрасно работает до тех пока не проигрывается видео (т.е. скриншорты черных прямоугольничков делаются отлично), как только начинаем проигрывать видео (и вообще после того когда в videoObj появилась картинка), то при попытке получить скриншот вылетает

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".

Находил аналогичный пример, но с веб-камерой, а вот с netstream'ом не работает:(

Как вылечить? Кто-нибудь делал что-то подобное?

strangedk
26.06.2012, 12:32
Ну ошибка говорит о том что у вас что-то не инициализировано.

Номер строки разве не предоставляется в ошибке?

arkc
26.06.2012, 14:18
ну ошибка то именно на var imageSnapshot:ImageSnapshot = ImageSnapshot.captureImage(videoObj, 0, jPEGEncoder);

Если в videoObj не выводить поток, то скрин делает без проблем, ошибка начинает вылетать только после того как передали поток, так что сомневаюсь что дело тут в инициализации.

Пробывал делать скриншот используя BitmapData.draw(), тогда вылетала ошибка #2122.

Видимо эти два способа между собой как-то связаны, и сделать скриншот без разрешения на сервере не получится :(