Flashhilfe.de - Flash Community

Security Problem in AS3 mit Youtube ??? [Flash 9]

 


AntwortenRegistrieren Seite1 2  

Atticus#1
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

25.03.2009, 23:49

Hallo^^

Ich glaube ich habe eine Sandbox Problem mit AS3. Aber da ich nicht sicher bin frage ich nochmal nach ;) Also, ich habe jetzt 2 Youtube Player, einen in As2 und einen in AS3. Beide funktionieren offline super, sobald ich diese aber hochlade funktioniert nur der Player in AS2.

Jetzt möchte ich natürlich wissen ob es an der Sandbox liegt das die AS3 Version online nicht läuft??? Und wenn das so ist würde ich noch gerne wissen ob hier jemand unter euch ist der das Security Problem bei As3 Youtube Playern schon gefunden hat. Ich vermute ja das man dann eine crossdomain.xml laden muß, aber wo ist die und was muß man noch im Code ergänzen damit es läuft ???

Vielen Dank schonmal !!!

Gruß Atticus^^
badskill#2
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

26.03.2009, 00:45

Hänge einfach einen Listener für ein
ActionScript:
1SecurityErrorEvent.SECURITY_ERROR
Event an den Loader ran, dann siehst du ja, ob es sich um eine Sicherheitsverletzung handelt.
Atticus#3
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

26.03.2009, 00:50

Hi badskill^^

Super, danke für den Tip! Ich wusste noch garnicht das es sowas gibt^^ Ich werde das gleich mal ausprobieren, vielen Dank!!!

Gruß Atticus^^
Atticus#4
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

26.03.2009, 01:01

Hi badskill^^

Ich habe es jetzt so gemacht:

ActionScript:
1
2
3
4
5
6
7
loaderOnline.addEventListener(SecurityErrorEvent.SECURITY_ERROR, error);
      
      function error(event:SecurityErrorEvent):void {
         //test.text = event;
         test.text ="securityErrorHandler: " + event;

      }


Aber online wenn ich das teste steht in dem Textfeld nichts, demnach ist doch auch kein Fehler vorhanden oder???

Aber das video läuft immer noch nicht, weist du was das noch sein kann ???

Gruß Atticus^^
cttogo#5
Benutzerbild von cttogo
Beiträge: 313
Wohnort: Waltrop
Registriert: Jul 2008

26.03.2009, 03:03

Lade doch mal die fla hoch oder poste Quellcode, damit man nachvollziehen kann was Du in AS3 gescriptet hast.

Tom
Irgenwas läuft immer schief!
Geändert von cttogo am 26.03.09 um 03:03 Uhr
Atticus#6
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

26.03.2009, 14:23

Hallo^^

Irgendwas ist da ganz komisch^^ Ich habe jetzt herausgefunden das das Video läuft, nur wird es nicht nicht angezeigt. Sehen könnt Ihr das ganze hier.

Mittlerweile glaube ich das es an Papervision handelt. Nur was ich nicht verstehe ist das es Offline läuft, was auch daran liegen kann das Offline nicht mit einer Proxy.php geladen wird.

Hier mal mein Script:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
stop();

import flash.display.*;
import flash.events.*;
import flash.geom.Matrix;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.display.Loader;     
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.text.*;
import flash.utils.Dictionary;
import flash.events.Event;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.display.BitmapData;
import flash.display.GradientType;
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.filters.BlurFilter;
import flash.geom.Matrix;

import org.papervision3d.cameras.*;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.scenes.*;
import org.papervision3d.view.*;
import org.papervision3d.render.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.materials.*;
import org.papervision3d.events.*;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.VideoStreamMaterial;
import org.papervision3d.objects.primitives.Plane;

var viewport:Viewport3D;
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var renderer:BasicRenderEngine = new BasicRenderEngine();

var cameraZoom:Number = 1.0;
var cameraFocus:Number = 500;
var cameraDistance:Number = -500;

var customClient:Object = new Object();
var netConnection:NetConnection;
var video:Video;
var netStream:NetStream;
var videoStreamMaterial:VideoStreamMaterial;

var plane:Plane;
var reflectionPlane:Plane;
var bm:BitmapMaterial;
var matrix:Matrix;
var gradientMask:Sprite
      
var streamsAndPlanes:Dictionary = new Dictionary(true);

var planeArray = new Array();
var bitmapArray:Array = new Array();

var YouTubeMedia:String = "http://www.youtube.com/watch?v=bap-oZI-Grc";
var ProxyPath = "proxy.php";

var MediaArray:Array = new Array();
var checkURL = stage.loaderInfo.url.slice(0, 4);
var MediaID:String;

if(YouTubeMedia.length > 3 && YouTubeMedia.indexOf("youtube.com") > -1 && YouTubeMedia.indexOf("?v=") > -1) {                                                   
   MediaArray = YouTubeMedia.split("?v=");      
   
   MediaID = MediaArray[1];
   
   YoutubeMediaPath();
}

else if(YouTubeMedia.length > 3 &&  YouTubeMedia.indexOf("youtube.com") > -1) {
   MediaArray = YouTubeMedia.split("v/");               

   MediaID = MediaArray[1];
   
   YoutubeMediaPath();
};

function YoutubeMediaPath() {
   if(checkURL == "file") {
      var loader:URLLoader = new URLLoader();

      var request:URLRequest = new URLRequest("http://www.youtube.com/get_video_info?&video_id=" + MediaID);

      request.method = URLRequestMethod.POST;

      loader.load(request);
      
      loader.dataFormat = URLLoaderDataFormat.VARIABLES;

      loader.addEventListener(Event.COMPLETE, completeHandler);
      
      function completeHandler(event:Event):void {
          var webcounterdata:String = String(loader.data);
      
         var variable:URLVariables = new URLVariables(loader.data);
      
         YouTubeMedia = "http://www.youtube.com/get_video.php?video_id=" + MediaID + "&t=" + variable.token;
         
         test.text = YouTubeMedia + " offline";
         
         create3DScene();
      }
   }
   
   else {
      var loaderOnline:URLLoader = new URLLoader();

      var requestOnline:URLRequest = new URLRequest(ProxyPath + "?url=" + escapeMultiByte("http://www.youtube.com/get_video_info?&video_id=" + MediaID));
      
      requestOnline.method = URLRequestMethod.POST;
      
      loaderOnline.load(requestOnline);
      
      loaderOnline.dataFormat = URLLoaderDataFormat.VARIABLES;
      
      loaderOnline.addEventListener(Event.COMPLETE, completeHandlerOnline);
      
      function completeHandlerOnline(event:Event):void {
          var webcounterdataOnline:String = String(loaderOnline.data);
      
         var variableOnline:URLVariables = new URLVariables(loaderOnline.data);
      
         YouTubeMedia = "http://www.youtube.com/get_video.php?video_id=" + MediaID + "&t=" + variableOnline.token;
         
         test.text = YouTubeMedia + " online " + webcounterdataOnline + " MEDIAID: " + MediaID + " TOKEN: " + variableOnline.token;
         
         /*var nc:NetConnection = new NetConnection();
         nc.connect(null);
         
         var ns:NetStream = new NetStream(nc);

         ns.play(YouTubeMedia);
         var vid:Video = new Video();
         vid.attachNetStream(ns);
         addChild(vid);*/


         create3DScene();
      }
   }
};

function create3DScene() {
   Initial3D();

   create3DData();
};

function Initial3D():void {
   stage.align = StageAlign.TOP_LEFT;
   stage.scaleMode = StageScaleMode.NO_SCALE;

   viewport = new Viewport3D(stage.stageWidth, stage.stageHeight, true, true);
   viewport.visible = true;
   
   addChild(viewport);
   
   camera.z = cameraDistance;
   
   camera.zoom = cameraZoom;
   camera.focus = cameraFocus;
};

function create3DData():void {
   for(var i:uint = 0; i < 1; i++) {
      customClient.onMetaData = metaDataHandler;
   
      netConnection = new NetConnection();
      netConnection.connect(null);

      netStream = new NetStream(netConnection);
      netStream.client = customClient;
      netStream.play(YouTubeMedia);
      netStream.seek(0);
      //netStream.pause();
   
      video = new Video();
      video.smoothing = true;
      video.attachNetStream(netStream);

      var videoStreamMaterial = new VideoStreamMaterial(video, netStream);

      videoStreamMaterial.interactive = true;
      videoStreamMaterial.animated = true;
      
      plane = new Plane(videoStreamMaterial, video.width, video.height, 8, 8);
   
      plane.x = i * 500;
   
      plane.rotationX = 0;
      plane.rotationY = 0;
   
      streamsAndPlanes[netStream] = plane;
   
      scene.addChild(plane);
      
      planeArray.push(plane);
      
      plane.addEventListener(InteractiveScene3DEvent.OBJECT_RELEASE, onPlaneRelease, false, 0, true);
      
      bm = new BitmapMaterial(new BitmapData(video.width, video.height), true);
        bm.doubleSided = true;

      bitmapArray.push(bm);
      
        reflectionPlane = new Plane(bm, video.width, video.height);
      
        reflectionPlane.rotationX = 180;
      reflectionPlane.rotationY = 0;
      
      reflectionPlane.x = i * 500;
        reflectionPlane.y = -video.height;
         
        scene.addChild(reflectionPlane);

        matrix = new Matrix();
        matrix.createGradientBox(video.width, video.height, (90/180) * Math.PI, 0, 90);

        gradientMask = new Sprite();
        gradientMask.graphics.beginGradientFill(GradientType.LINEAR, [0xffffff, 0xffffff], [1, 0.2], [0, 255], matrix);
        gradientMask.graphics.drawRect(0, 0, video.width, video.height);
        gradientMask.graphics.endFill();
        gradientMask.cacheAsBitmap = true
      
      VideoStreamMaterial(plane.material).stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
      
      addEventListener(Event.ENTER_FRAME, update3D);
   }
};

addEventListener(Event.ENTER_FRAME, renderVideoReflection);

function renderVideoReflection(e:Event):void {
   for(var i = 0; i < planeArray.length; i++) {
      bitmapArray[i].bitmap.draw(planeArray[i].material.bitmap);
       bitmapArray[i].bitmap.draw(gradientMask);
   }
};

function onPlaneRelease(e:InteractiveScene3DEvent):void {
   var plane:Plane = e.target as Plane;
         
   VideoStreamMaterial(plane.material).stream.resume();
};

function netStatusHandler(e:NetStatusEvent):void {
   switch(e.info.code) {
       case "NetConnection.Connect.Success":
           trace("successfully connected");
            
           break;

        case "NetStream.Play.StreamNotFound":
            trace("Unable to locate video: ");
            
            break;

        case "NetStream.Buffer.Full":
            trace("buffer full");

            break;

        case "NetStream.Buffer.Empty":
            trace("buffer empty");

            break;

        case "NetStream.Play.Stop":
            test.text = "video stop";
         
         var stream:NetStream = e.target as NetStream;
         var plane:Plane = streamsAndPlanes[stream];
         
         stream.seek(0);
         //stream.pause();

         VideoStreamMaterial(plane.material).animated = true;
         
             break;
   }
};

function metaDataHandler(infoObject:Object):void {
   trace(infoObject);
};

function update3D(e:Event):void {
   renderer.renderScene(scene, camera, viewport);
};


Ich habe auch herausgefunden das wenn ich in der Funktion completeHandlerOnline direkt das Video adde dann läuft es auch, nur wenn ich dann versuche mit Papervision3D das Video zu laden geht es nicht, das Bild verschwindet aus mir unerklärlichen Gründen, aber die Musik hört man. Offline geht jedoch alles wunderbar.

Ich wäre sehr dankbar wenn mir jemand sagen könnte wieso das Video Online verschwindet und nicht läuft.

Vielen Dank!!!

Gruß Atticus^^
badskill#7
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

26.03.2009, 15:38

Wenn ich den Link öffne, wird ein SecurityError geworfen (hab den Debug-Player installiert). Es ist also eine Sicherheitsverletzung.
Aber sollte der Proxy nicht eigentlich genau das verhindern? Hm, vielleicht funzt der nicht mit Videostreams.
Atticus#8
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

26.03.2009, 16:29

Hi badskill^^

Die proxy.php ist aus der AS2 Version die auch Online funktioniert! Kann es sein das man die Proxy.php für die AS3 Version umschreiben muß ??? Meines wissens nach ist die Proxy.php auch nur dafür da das der Pfad zu dem Video bei Youtube geladen werden kann, ist das so ???  Aber ich kann mich auch irren ;)

Gruß Atticus^^
badskill#9
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

26.03.2009, 17:08

Hm, hört sich so an, als ob sich der Flash 9 Player nicht mehr auf diese Art täuschen lässt. Da kann ich im Augenblick auch nicht weiterhelfen.
Atticus#10
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

26.03.2009, 17:11

Trotzdem Vielen Dank badskill!!!

Gruß Atticus^^
Atticus#11
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

01.04.2009, 01:28

Hallo^^

Ich habe mich jetzt nochmal damit beschäftigt :) Also mit folgendem Code funktioniert es wunderbar:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
stop();

import flash.display.*;
import flash.events.*;
import flash.geom.Matrix;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.display.Loader;     
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.text.*;
import flash.utils.Dictionary;
import flash.events.Event;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.display.BitmapData;
import flash.display.GradientType;
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.filters.BlurFilter;
import flash.geom.Matrix;

import org.papervision3d.cameras.*;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.scenes.*;
import org.papervision3d.view.*;
import org.papervision3d.render.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.materials.*;
import org.papervision3d.events.*;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.VideoStreamMaterial;
import org.papervision3d.objects.primitives.Plane;

var viewport:Viewport3D;
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var renderer:BasicRenderEngine = new BasicRenderEngine();

var cameraZoom:Number = 1.0;
var cameraFocus:Number = 500;
var cameraDistance:Number = -500;

var customClient:Object = new Object();
var netConnection:NetConnection;
var video:Video;
var netStream:NetStream;
var videoStreamMaterial:VideoStreamMaterial;

var plane:Plane;
var reflectionPlane:Plane;
var bm:BitmapMaterial;
var matrix:Matrix;
var gradientMask:Sprite
      
var streamsAndPlanes:Dictionary = new Dictionary(true);

var planeArray = new Array();
var bitmapArray:Array = new Array();


var YouTubeMedia:String = "http://www.youtube.com/watch?v=bap-oZI-Grc";
var ProxyPath = "proxy.php";

var MediaArray:Array = new Array();
var checkURL = stage.loaderInfo.url.slice(0, 4);
var MediaID:String;

if(YouTubeMedia.length > 3 && YouTubeMedia.indexOf("youtube.com") > -1 && YouTubeMedia.indexOf("?v=") > -1) {                                                   
   MediaArray = YouTubeMedia.split("?v=");      
   
   MediaID = MediaArray[1];
   
   YoutubeMediaPath();
}

else if(YouTubeMedia.length > 3 &&  YouTubeMedia.indexOf("youtube.com") > -1) {
   MediaArray = YouTubeMedia.split("v/");               

   MediaID = MediaArray[1];
   
   YoutubeMediaPath();
};

function YoutubeMediaPath() {
   if(checkURL == "file") {
      var loader:URLLoader = new URLLoader();

      var request:URLRequest = new URLRequest("http://www.youtube.com/get_video_info?&video_id=" + MediaID);

      request.method = URLRequestMethod.POST;

      loader.load(request);
      
      loader.dataFormat = URLLoaderDataFormat.VARIABLES;

      loader.addEventListener(Event.COMPLETE, completeHandler);
      
      function completeHandler(event:Event):void {
          var webcounterdata:String = String(loader.data);
      
         var variable:URLVariables = new URLVariables(loader.data);
      
         YouTubeMedia = "http://www.youtube.com/get_video.php?video_id=" + MediaID + "&t=" + variable.token;
         
         test.text = YouTubeMedia + " offline";
         
         create3DScene();
      }
   }
   
   else {
      var loaderOnline:URLLoader = new URLLoader();

      var requestOnline:URLRequest = new URLRequest(ProxyPath + "?url=" + escapeMultiByte("http://www.youtube.com/get_video_info?&video_id=" + MediaID));
      
      requestOnline.method = URLRequestMethod.POST;
      
      loaderOnline.load(requestOnline);
      
      loaderOnline.dataFormat = URLLoaderDataFormat.VARIABLES;
      
      loaderOnline.addEventListener(Event.COMPLETE, completeHandlerOnline);
      
      function completeHandlerOnline(event:Event):void {
          var webcounterdataOnline:String = String(loaderOnline.data);
      
         var variableOnline:URLVariables = new URLVariables(loaderOnline.data);
      
         YouTubeMedia = "http://www.youtube.com/get_video.php?video_id=" + MediaID + "&t=" + variableOnline.token;
         
         test.text = YouTubeMedia + " online " + webcounterdataOnline + " MEDIAID: " + MediaID + " TOKEN: " + variableOnline.token;
         
         var nc:NetConnection = new NetConnection();
         nc.connect(null);
         
         var ns:NetStream = new NetStream(nc);

         ns.play(YouTubeMedia);
         var vid:Video = new Video();
         vid.attachNetStream(ns);
         addChild(vid);

         //create3DScene();
      }
   }
};





function create3DScene() {
   Initial3D();

   create3DData();
};

function Initial3D():void {
   stage.align = StageAlign.TOP_LEFT;
   stage.scaleMode = StageScaleMode.NO_SCALE;

   viewport = new Viewport3D(stage.stageWidth, stage.stageHeight, true, true);
   viewport.visible = true;
   
   addChild(viewport);
   
   camera.z = cameraDistance;
   
   camera.zoom = cameraZoom;
   camera.focus = cameraFocus;
};

function create3DData():void {
   for(var i:uint = 0; i < 1; i++) {
      customClient.onMetaData = metaDataHandler;
   
      netConnection = new NetConnection();
      netConnection.connect(null);

      netStream = new NetStream(netConnection);
      netStream.client = customClient;
      netStream.play(YouTubeMedia);
      netStream.seek(0);
      //netStream.pause();
   
      video = new Video();
      video.smoothing = true;
      video.attachNetStream(netStream);

      var videoStreamMaterial = new VideoStreamMaterial(video, netStream);

      videoStreamMaterial.interactive = true;
      videoStreamMaterial.animated = true;
      
      plane = new Plane(videoStreamMaterial, video.width, video.height, 8, 8);
   
      plane.x = i * 500;
   
      plane.rotationX = 0;
      plane.rotationY = 0;
   
      streamsAndPlanes[netStream] = plane;
   
      scene.addChild(plane);
      
      planeArray.push(plane);
      
      plane.addEventListener(InteractiveScene3DEvent.OBJECT_RELEASE, onPlaneRelease, false, 0, true);
      
      bm = new BitmapMaterial(new BitmapData(video.width, video.height), true);
        bm.doubleSided = true;

      bitmapArray.push(bm);
      
        reflectionPlane = new Plane(bm, video.width, video.height);
      
        reflectionPlane.rotationX = 180;
      reflectionPlane.rotationY = 0;
      
      reflectionPlane.x = i * 500;
        reflectionPlane.y = -video.height;
         
        scene.addChild(reflectionPlane);

        matrix = new Matrix();
        matrix.createGradientBox(video.width, video.height, (90/180) * Math.PI, 0, 90);

        gradientMask = new Sprite();
        gradientMask.graphics.beginGradientFill(GradientType.LINEAR, [0xffffff, 0xffffff], [1, 0.2], [0, 255], matrix);
        gradientMask.graphics.drawRect(0, 0, video.width, video.height);
        gradientMask.graphics.endFill();
        gradientMask.cacheAsBitmap = true
      
      VideoStreamMaterial(plane.material).stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
      
      addEventListener(Event.ENTER_FRAME, update3D);
   }
};

addEventListener(Event.ENTER_FRAME, renderVideoReflection);

function renderVideoReflection(e:Event):void {
   for(var i = 0; i < planeArray.length; i++) {
      bitmapArray[i].bitmap.draw(planeArray[i].material.bitmap);
       bitmapArray[i].bitmap.draw(gradientMask);
   }
};

function onPlaneRelease(e:InteractiveScene3DEvent):void {
   var plane:Plane = e.target as Plane;
         
   VideoStreamMaterial(plane.material).stream.resume();
};

function netStatusHandler(e:NetStatusEvent):void {
   switch(e.info.code) {
       case "NetConnection.Connect.Success":
           trace("successfully connected");
            
           break;

        case "NetStream.Play.StreamNotFound":
            trace("Unable to locate video: ");
            
            break;

        case "NetStream.Buffer.Full":
            trace("buffer full");

            break;

        case "NetStream.Buffer.Empty":
            trace("buffer empty");

            break;

        case "NetStream.Play.Stop":
            test.text = "video stop";
         
         var stream:NetStream = e.target as NetStream;
         var plane:Plane = streamsAndPlanes[stream];
         
         stream.seek(0);
         //stream.pause();

         VideoStreamMaterial(plane.material).animated = true;
         
             break;
   }
};

function metaDataHandler(infoObject:Object):void {
   trace(infoObject);
};

function update3D(e:Event):void {
   renderer.renderScene(scene, camera, viewport);
};


Sogar Online :) Anschauen könnt Ihr das ganze hier. Allerdings möchte ich das video ja in ein Plane laden und sobald ich das mache funktioniert es nicht mehr! Ich kann mir aber auch nicht erklären warum dies dann nicht geht, es wäre super nett wenn mir jemand sagen könnte woran das liegt!!!

Vielen Dank schonmal !!!

Gruß Atticus^^
Geändert von Atticus am 01.04.09 um 01:34 Uhr
badskill#12
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

01.04.2009, 15:29

Das Laden des Videos sollte über den Proxy gehen und nicht direkt über Youtube.
Atticus#13
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

01.04.2009, 15:37

Hi badskill^^

In dem Beispiel lade ich das Video ja auch über den Proxy. Und das scheint ja auch zu gehen. Es klappt ja nur nicht wenn ich das video als Plane darstelle, und das kann ich mir nicht erklären!

Weist du woran das liegen kann???

Gruß Atticus^^
badskill#14
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

01.04.2009, 15:46

>>In dem Beispiel lade ich das Video ja auch über den Proxy
Nein, nicht online soweit ich das überblicken kann.
Atticus#15
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

01.04.2009, 15:58

Hey badskill^^

doch, es wird über die Proxy geladen ;) Dafür ist diese IF Abfrage:

ActionScript:
1
2
3
4
5
6
7
if(checkURL == "file") {

}

else {

}


Und hier ist der Request zu der Proxy.php:

ActionScript:
1var requestOnline:URLRequest = new URLRequest(ProxyPath + "?url=" + escapeMultiByte("http://www.youtube.com/get_video_info?&video_id=" + MediaID));


Gruß Atticus^^
badskill#16
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

01.04.2009, 16:11

Damit lädst du aber nicht das Video, sondern irgendwas anderes.
Du lädst das Video von der url 'YouTubeMedia'
ns.play(YouTubeMedia); bzw. netStream.play(YouTubeMedia);

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de