Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-09-2008, 16:10   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 142
Metadaten vom Video - OnMetaData wird nicht ausgelöst?

Hallo zusammen,

ich möchte ein Video einem bereits auf der Bühne platzierten Player laden.

Soweit funktioniert das auch, leider wird onMetaData nicht ausgelöst, sodass ich die Größe des Players nicht anpassen kann.

Hat jemand eine Idee?

Code:
package 
{
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.media.Video;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	import flash.events.NetStatusEvent;
	import flash.events.SecurityErrorEvent;
	import flash.events.AsyncErrorEvent;	

	public class TextWithImageAndVideoTemplate extends TextWithImageTemplate
	{
		private var _videoURL : String;
		private var _video : Video;
		private var _netconnection : NetConnection = new NetConnection();
		private var _serverLoc : String;
		private var _ns : NetStream;

		public function TextWithImageAndVideoTemplate()
		{
			init();
		}

		override protected function init() : void
		{
			super.init();
			visible = false;
		}

		override protected function addAdditionalContent() : void
		{	
			_videoURL = _data.video;
			_serverLoc = null;
			_video = MovieClip(getChildByName( "video1" )).getChildByName( "vidDisplay" ) as Video;
			
			_netconnection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
			_netconnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
			
			_netconnection.connect( _serverLoc );
			
			super.addAdditionalContent();
		}

		private function onNetStatus(event : Object) : void 
		{
			//handles NetConnection and NetStream status events
			switch (event.info.code) 
			{
				case "NetConnection.Connect.Success":
					//play stream if connection successful
					connectStream();
					break;
				case "NetStream.Play.StreamNotFound":
					//error if stream file not found in
					//location specified
					trace("Stream not found: " + _videoURL);
					break;
				case "NetStream.Play.Stop":
					//do if video is stopped
					videoPlayComplete();
					break;
			}
		}
		
		private function videoPlayComplete():void {
			setVideoInit();
		}
		
		private function setVideoInit():void {
			_ns.play(_videoURL);
			//_ns.pause();
			_ns.seek(1);
		}
		
		/* -------------------Connection------------------- */
		private function connectStream():void {
			//netstream object
			_ns = new NetStream(_netconnection);
			_ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
			_ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
			//other event handlers assigned 
			//to the netstream client property
			var custom_obj:Object = new Object();
			custom_obj.onMetaData = onMetaDataHandler;
			custom_obj.onCuePoint = onCuePointHandler;
			custom_obj.onPlayStatus = playStatus;
			
			_ns.client = custom_obj;
			
			//attach netstream to the video
			_video.attachNetStream(_ns);
			
			setVideoInit();
		}
		
		private function playStatus(event:Object):void {
			//handles onPlayStatus complete event if available
			switch (event.info.code) {
				case "NetStream.Play.Complete":
					//do if video play completes
					videoPlayComplete();
					break;
			}
			//trace(event.info.code);
		}
		
		/* -----------------Information handlers---------------- */
		private function onMetaDataHandler(metaInfoObj:Object):void {
			
			_video.width = metaInfoObj.width;
			_video.height = metaInfoObj.height;
			
			trace("_video.width " + metaInfoObj.width);
			trace("metadata: duration=" + metaInfoObj.duration + 
				"width=" + metaInfoObj.width + " height=" +
				metaInfoObj.height + " framerate=" +
				metaInfoObj.framerate);
		}
		
		private function onCuePointHandler(cueInfoObj:Object):void {
			//trace("cuepoint: time=" + cueInfoObj.time + " name=" + 
				//cueInfoObj.name + " type=" + cueInfoObj.type);
		}

		/* -----------------------Error handlers------------------------ */
		private function securityErrorHandler(event : SecurityErrorEvent) : void 
		{
			trace("securityErrorHandler: " + event);
		}

		private function asyncErrorHandler(event : AsyncErrorEvent) : void 
		{
			trace(event.text);
		}

		override public function finalize() : void
		{
			super.finalize();
		}
	}
}
skittles ist offline   Mit Zitat antworten
Alt 18-09-2008, 16:38   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Habs mir gar nicht angekuckt, aber hat dein Video auch MetaDaten?
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 18-09-2008, 16:44   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 142
Die Möglichkeit hatte ich zwar nicht in betracht gezogen, aber habe nun ein Video benutzt, welches definitiv Metadaten besitzt.

Leider immer noch kein Erfolg.
skittles ist offline   Mit Zitat antworten
Alt 23-09-2008, 11:39   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 142
Hi ich habe immer noch keine Lösung gefunden, aber es werden alle Funktionen ignoriert, die dem custom_obj zugewiesen werden.

Allerdings stehts genau so in der Doku, daher bin ich etwas ratlos, warum die Methoden nicht ausgeführt werden.

Hat jemand noch eine Idee?

Gruß!

skittles
skittles ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele