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

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

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

Регистрация: May 2008
Сообщений: 102
По умолчанию Проблема со звуком в видеоряде.

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

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

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

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

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

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

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

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

Старый 09.06.2009, 17:02
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Аха, а из интернета, следовательно, еще медленнее, чем с локального диска?
Грузите отдельными файлами, не заморачивайтесь ембедом. Хотя, это противоречит ТЗ.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 09.06.2009, 17:24
ekeeper вне форума Посмотреть профиль Отправить личное сообщение для ekeeper Найти все сообщения от ekeeper
  № 3  
Ответить с цитированием
ekeeper

Регистрация: May 2008
Сообщений: 102
Цитата:
Сообщение от dimarik Посмотреть сообщение
Аха, а из интернета, следовательно, еще медленнее, чем с локального диска?
Грузите отдельными файлами, не заморачивайтесь ембедом. Хотя, это противоречит ТЗ.
Заказчит уже просит - лишь бы работало - так что можно и отдельными файлами грузить, но проблема осталась - затыки при смене видеороликов. Не знаю как убрать.

Пробую так:
Код 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, время: 22:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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