Я знаю, что это старый вопрос, но я искал некоторое время и не нашел ответа.
Если вы используете компонент FLVPlayback, вы все равно можете использовать MetadataEvent для получения метаданных, встроенных в файл FLV/F4V. Я создал экземпляр FLVPlayback через AS3, прослушал событие MedataEvent.METADATA_RECEIVED, а затем получил доступ к свойству info, которое возвращает событие. В коде это выглядит примерно так:
package
{
import fl.video.FLVPlayback; // you will need to drag the component to the stage, then delete it. This puts some stuff in the library and now you can access the class
import fl.video.MetadataEvent;
import flash.display.MovieClip;
public class flvTest extends MovieClip
{
private var inputURL:String = "./test.flv"; // change this to the location of your FLV/F4V
private var player:FLVPlayback;
public function flvTest():void
{
player = new FLVPlayback();
// set x,y,width,height values if you want
player.autoRewind = true; // I use this so when you press stop, it goes to the first frame
player.load( inputURL ); // you can use load() or source=
player.addEventListener( MetadataEvent.METADATA_RECEIVED, getMetaFromFLV );
addChild( player );
}
private var getMetaFromFLV( metadataEvent:MetadataEvent = null ):void
{
trace( "FLV Duration: " + metadataEvent.info.duration );
}
}
}
Очевидно, вам нужны некоторые элементы управления плеером и т. д., но ключом к этому ответу является часть MetadataEvent. Свойство info, возвращаемое событием, содержит ВСЕ метаданные, встроенные в видеофайл FLV/F4V, поэтому вы можете получить множество других значений.
(Многие другие поисковые запросы и сообщения объясняют только то, как получить метаданные из NetStream и т.п., которые используются при подключении к серверу Flash Media, тогда как здесь мы обращаемся к локальному файлу и просто хотим, чтобы данные, которые файл должен был быть встроен в Это).
Я надеюсь, что это помогает кому-то!
person
Jawdy
schedule
11.11.2010