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

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

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

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
По умолчанию play Embeded FLV / MP3

Код AS3:
[Embed(source = "video.flv", mimeType = "application/octet-stream")]
Как воспроизвести?
Поиск не помог
FD
__________________
smival.com


Последний раз редактировалось $mival; 09.02.2010 в 11:51.
Старый 09.02.2010, 14:35
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
http://code.google.com/p/e4xu/source...VTranscoder.as
Но там есть пара багов, которые я не знаю как пофиксить / чем они вызваны... Т.е. не все FLV будут работать.
Или вот: http://lib.haxe.org/d/format/1.14/format/flv
__________________
Hell is the possibility of sanity

Старый 09.02.2010, 15:01
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 3  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
Цитата:
Сообщение от wvxvw Посмотреть сообщение
http://code.google.com/p/e4xu/source...VTranscoder.as
Но там есть пара багов, которые я не знаю как пофиксить / чем они вызваны... Т.е. не все FLV будут работать.
Или вот: http://lib.haxe.org/d/format/1.14/format/flv
мм, отдаем ByteArray, получаем Vector.<ByteArray>
это должно как то помочь решить вопрос?
__________________
smival.com

Старый 10.02.2010, 15:35
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А, ок, принцип работы следующий, в полученном массиве будут кадры видео выдернутые из FLV. Что нужно дальше сделать:
Код AS3:
public static function compileEmbeddedVideo(input:ByteArray, toFile:String):ByteArray
{
		var sbgColor:SetBackgroundColor = new SetBackgroundColor();
		sbgColor.color = 0xFF;
 
		var defSLData:DefineSceneAndFrameLabelData = new DefineSceneAndFrameLabelData();
		//defSLData.frameLabelCount
 
		var symbol:SymbolClass = new SymbolClass();
		symbol.classNames = ["embedded_fla.MainTimeline"];
		symbol.numSymbols = 1;
		symbol.tagIDs = [1];
 
		var frames:Vector.<ByteArray> = FLVTranscoder.read(input);
		var videoStream:DefineVideoStream = new DefineVideoStream();
		videoStream.characterID = 1;
		videoStream.codecID = FLVTranscoder.videoCodec;
		videoStream.height = FLVTranscoder.height;
		videoStream.width = FLVTranscoder.width;
		videoStream.numFrames = frames.length;
 
		var placeObject:PlaceObject2 = new PlaceObject2();
		placeObject.characterId = 1;
		placeObject.depth = 1;
		placeObject.placeFlagHasCharacter = true;
		placeObject.placeFlagHasMatrix = true;
		placeObject.matrix = SWFUtils.writeMatrix(new Matrix());
		var poBA:ByteArray = placeObject.compile();
 
		var videoFrame:VideoFrame = new VideoFrame();
		videoFrame.streamID = 1;
 
		var showFrame:ShowFrame = new ShowFrame();
		var sfBA:ByteArray = showFrame.compile();
 
		var swf:ByteArray = new ByteArray();
		swf.endian = Endian.LITTLE_ENDIAN;
		frameCount = frames.length;
		writeHeader(swf, toFile);
		//swf.writeBytes(sbgColor.compile());
		//swf.writeBytes(defSLData.compile());
		//swf.writeBytes(symbol.compile());
		swf.writeBytes(videoStream.compile());
 
		var i:int;
		var fakePlaceObject:ByteArray = new ByteArray();
		fakePlaceObject.endian = Endian.LITTLE_ENDIAN;
		fakePlaceObject.writeByte(0x85);
		fakePlaceObject.writeByte(0x06);
		fakePlaceObject.writeByte(0x11);
		fakePlaceObject.writeByte(0x01);
		fakePlaceObject.writeByte(0x00);
		fakePlaceObject.writeByte(0x00);
		fakePlaceObject.writeByte(0x00);
		fakePlaceObject.position = 0x0;
 
		var soundBlock:SoundStreamBlock = new SoundStreamBlock();
		var soundHead:SoundStreamHead = FLVTranscoder.soundStreamHead;
		var mp3Data:MP3StreamSoundData = new MP3StreamSoundData();
		var hasSound:Boolean = soundHead !== null;
 
		if (hasSound) swf.writeBytes(soundHead.compile());
 
		for each (var arr:ByteArray in frames)
		{
				videoFrame.frameNum = i;
				videoFrame.videoData = arr;
 
				if (i === 0x0)
				{
						poBA.position = 0x0;
						swf.writeBytes(poBA);
				}
				else
				{
						fakePlaceObject.position = 0x5;
						fakePlaceObject.writeShort(i);
						fakePlaceObject.position = 0x0;
						swf.writeBytes(fakePlaceObject);
				}
				swf.writeBytes(videoFrame.compile());
 
				if (hasSound)
				{
						mp3Data.data = FLVTranscoder.soundFrames[i];
						mp3Data.seekSamples = FLVTranscoder.seekSamples[i];
						mp3Data.sampleCount = FLVTranscoder.sampleCounter[i];
						soundBlock.streamSoundData = mp3Data.write();
						swf.writeBytes(soundBlock.compile());
				}
 
				sfBA.position = 0x0;
				swf.writeBytes(sfBA);
				i++;
		}
 
		writeEnd(swf);
		swf.position = 0x4;
		swf.writeUnsignedInt(swf.length);
		swf.position = 0x0;
		return swf;
}
Ну и полученое - это уже будет SWF со встроенным видео, загружаем ее через Loader#loadBytes() и играем.
http://code.google.com/p/e4xu/source...VCompiler.mxml
Вот тут есть полностю работающая демка.
Но лучше было бы попробовать flv.format'ом воспользоваться, я сколько со своей эксперементировал - какие-то FLV нормально читаются, а в каких-то есть напряги со звуком, которые я не понял как побороть...
__________________
Hell is the possibility of sanity

Старый 10.02.2010, 16:12
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 5  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
получается из эмбед байтмассива мы опять возвращаем всё в файл и грузим лоадером. а смысл тогда было это делать если можно сразу загрузить FLV и так?

я же предполагал, что флеш (не эйр) будет проигрывать заэмбеденные флвшки, то есть не подгружая извне (нужно для множества видеоэффектов в презентации, которые часто обновляются и обновлять swc с ними через flash ide неудобно)

т.е. без эйр данная цель невыполнима?
__________________
smival.com

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

Теги
embed , flv , mp3
Опции темы
Опции просмотра

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

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


 


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


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