Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема со звуком в видеоряде. (http://www.flasher.ru/forum/showthread.php?t=126076)

ekeeper 09.06.2009 15:03

Проблема со звуком в видеоряде.
 
Начальные условия:
1. желания и требования заказчика (без них никуда)
1.1. исходя из требований заказчика имеем:
- размер флэш-клипа 1200 на 700
- в проект встроено около 20 видеороликов
- размер каждого видеоролика 480x428
- все видео ролики встроены в проект - на выходе один swf-файл
- нужно было реализовать следующее:

Ролики проигрываются подряд в цикле, допустим, в случайно последовательности

Видео в формате FLV импортировался через IDE CS4 как embded видео с автоматическим созданием мувиклипа и разложению его по кадрам в timeline этого клипа.

Видео было БЕЗ звука. И все работало - ролики плавно сменяли друг друга. Хоть и были тормоза, но терпимые. Заказчик обещал под проект крутые тачки, на которых все летает и не тормозит.

Проблема: видеоролики без звука, заменили на видеоролики со звуком - начались адские тормоза + видео играет не плавно - когда очередной ролик заканчивается - видео стопорится и через некоторое время только начинает играть следующий ролик - то есть появляется пауза на концах роликов.

При этом даже на крутых тачках все начинает тормозить и дергаться.
-----------------------------------------------

Кто-нибудь что-нибудь может посоветовать?
Я думал грузить видео отдельными файлами с диска - но мне сказали что это медленно работает.

Заранее спасибо.

dimarik 09.06.2009 17:02

Аха, а из интернета, следовательно, еще медленнее, чем с локального диска?
Грузите отдельными файлами, не заморачивайтесь ембедом. Хотя, это противоречит ТЗ.

ekeeper 09.06.2009 17:24

Цитата:

Сообщение от dimarik (Сообщение 827012)
Аха, а из интернета, следовательно, еще медленнее, чем с локального диска?
Грузите отдельными файлами, не заморачивайтесь ембедом. Хотя, это противоречит ТЗ.

Заказчит уже просит - лишь бы работало - так что можно и отдельными файлами грузить, но проблема осталась - затыки при смене видеороликов. Не знаю как убрать.

Пробую так:
Код AS3:

 package {
        import flash.display.*;
    import flash.events.*;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    public class Main2 extends Sprite {
        private var videoURL1:String = "run.flv";
        private var videoURL2:String = "jump.flv";
                private var currentURL = 1;
        private var connection:NetConnection;
        private var stream:NetStream;
                private var video:Video;
 
        public function Main2() {
 
                        stage.quality = StageQuality.LOW;
                        stage.scaleMode = StageScaleMode.NO_SCALE;
 
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }
        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.Stop":
                                        currentURL = (currentURL == 1)?2:1;
                            stream.play((currentURL == 1)?videoURL1:videoURL2);
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Unable to locate video");
                    break;
            }
        }
        private function connectStream():void {
            stream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
 
                video = new Video(480, 428);
            video.attachNetStream(stream);
                        currentURL = 1;
            stream.play(videoURL1);
            addChild(video);
        }
        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
 
        private function asyncErrorHandler(event:AsyncErrorEvent):void {
            // ignore AsyncErrorEvent events.
        }
    }
 }

код из примера взять у Adobe и чуток модифицировал


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

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