2016-04-06 2 views
1

Wenn Youtube-Videos über die Komponente StageWebView Air geladen Ich brauche das Video in die Darstellungsgröße verkleinert wird, zeigt schwarze Balken in Ordnung ist, aber was ich am Ende sehen ist eine beschnittene Version die ursprüngliche Größe des Videos stattdessen.Video Kulturen Youtube beim Laden es StageWebView mit

Ich bin keine zusätzlichen Parameter zu sehen, die ich verwenden könnte, scheint die API sehr begrenzt.

Irgendwelche Ideen, wie das Video zu spielen, so auch wenn die Quelle größer ich es in die Darstellungsgröße der Größe verändern kann ?.

Antwort

1

Normalerweise Youtube ich zeigen, wie in dieser gezeigt hinzufügen other Answer (aber das lädt eine Flash Player-Version, die Sie nicht möchten). PS: Denken Sie daran, es ist .com/v/VID_ID für Flash Player verwenden oder .com/embed/VID_ID für HTML5 Player verwenden.

Irgendwelche Ideen, wie man das Video so spielt, selbst wenn die Quelle größer ist, kann ich die Größe auf die Ansichtsfenstergröße ändern ?.

Sie sagen, Sie haben ähnlichen Code wie das Android-Beispiel als Antwort geschrieben? Warum nicht versuchen, stattdessen eine iframe zu öffnen, da dies eine Größenanpassung ermöglichen würde?

Ein Beispiel für eine benutzerdefinierte Größe Youtube iframe ...

<iframe width="800" height="600" src="https://www.youtube.com/embed/"+ VID +"?autoplay=1" frameborder="0" allowfullscreen></iframe> 

innerhalb iframe So öffnen Sie eine dynamische Webseite von Code machen müsste. Code unten ist ungetestet sondern basiert auf this idea von Adobe Foren. Nur ein Startpunkt, den Sie einstellen/reparieren konnten ...

var html_Dynamic : String; 

html_Dynamic = "<!DOCTYPE HTML>" + 
       "<html>" + 
        "<body>" + 
         "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 100%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"https://www.youtube.com/embed/" + 
          VID + "?fs=0\" frameborder=\"0\">\n" + "</iframe>\n"; 
       "</body>" + 
       "</html>"; 
+0

Es funktionierte, teilweise, voller Probleme, wie der "Play" -Button zu klein war, oder sobald die vorgeschlagenen Videos erschienen, waren sie auch zu klein und als ich in eines davon klickte, war das nächste Video riesig. Dunno, ich mag diesen Ansatz nicht, ich habe VideoTexture benutzt, aber ja, das hat das Problem gelöst, denke ich. – Artemix

+0

Ist das der "iframe" Ansatz, den Sie meinen? Ich habe das nicht getestet, aber vorgeschlagen. Muss möglicherweise über URL-Optionen optimiert werden. Die ** [andere Option] (http://stackoverflow.com/a/35711654/2057709) ** der Verwendung eines Flash-basierten YouTube-Players ist möglicherweise besser und Sie benötigen kein stageWebView Dafür einfach einen MovieClip-Container und die Größe mit AS3-Code ändern ... –

+0

Aber ich glaube nicht, dass der Flash-basierte unter iOS funktioniert. – Artemix

0

ich diesen Code für Android verwenden, es zu versuchen: (es die Seitengröße die Größe)

import flash.display.MovieClip; 
import flash.media.StageWebView; 
import flash.geom.Rectangle; 
import flash.events.Event; 
import flash.utils.Timer; 
import flash.events.TimerEvent; 
import flash.system.Capabilities; 

this.visible = false ; 

var webView: StageWebView = new StageWebView(); 



webView.stage = stage; 



function videoing(VID): void {/// VID is the video id 
    stage.setAspectRatio(StageAspectRatio.LANDSCAPE); 

    var vidLink:String = "https://www.youtube.com/embed/"+ VID +"?autoplay=1" ; 
    trace(vidLink); 
    webView = new StageWebView(); 
    webView.stage = this.stage; 
    webView.viewPort = new Rectangle(-(stage.stageHeight/2)+100,0, stage.stageHeight*2+40 , stage.stageWidth*2 - 160); 
    webView.loadURL(vidLink); 
    this.stage.focus = stage; 
} 


//////////////// dispose the video /////////////////////// 

exit_btn.addEventListener(KeyboardEvent.KEY_DOWN, fl_OptionsMenuHandler); 

function fl_OptionsMenuHandler(event: KeyboardEvent = null): void { 
    if ((event.keyCode == Keyboard.BACK) && (webView)) { 
     event.preventDefault(); 
     webView.stage = null; 
     webView.dispose(); 
     webView = null ; 
     stage.setAspectRatio(StageAspectRatio.PORTRAIT); 
    } 
} 

Auf Android braucht es

<application android:hardwareAccelerated="true"/> 
+0

Das ist genau das, was ich habe, aber ich sehe immer noch das beschnittene Video. – Artemix

Verwandte Themen