PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C# YoutubeVideo einbinden in VS11



PapstRatze
18.04.2012, 14:42
Tag allerseits,

nachdem ich schon den ganzen morgen verzweifle, brauch ich jetzt endlich eure Hilfe :freak.
Ich habe ein Windows App für Metro erstellt, es funktioniert auch alles einwandfrei. Bis dahin ist es allerdings nur eine Sammlung an verschiedenen Daten unter anderem eben auch links zu Youtube-Videos.

Zum abspielen dachte ich, sei der MediaPlayer wohl am geeignetsten, und so habe ich versucht die Source dieser zu setzen. Es scheint allerdings nicht der richtige Weg, wenn man die Beispiele von MS durchgeht, findet man eins (mit dem Namen: PlayTo), welches als Source eine Datei hat (aus dem Internet, weiß net wie ich es besser beschreiben soll :P ggf. hier der Link (http://ie.microsoft.com/testdrive/Graphics/VideoFormatSupport/big_buck_bunny_trailer_480p_high.mp4)).

Ich hoffe a) jemand hat mich verstanden :evillol und b) irgend eine weise Person hat einen Rat.

holy
18.04.2012, 15:43
Das PlayTo-Framework ist nicht was du suchst, Stichwort DLNA.
MediaElement bzw. mit Controls der MediaPlayer sollte passen.
Poste bitte deinen Code deines Calls zu SetSource . Wahrscheinlich hast du da einen Fehler.

sasdensas
18.04.2012, 15:48
Sollte ja reichen, wenn Du die Source von YouTube verwendest. Um an das Video zu kommen, musst Du erstmal nachschauen, wo sich dieser im HTML, XML und sonstwas unter Youtube versteckt hat. Analysieren kannste dies am besten mit LiveHTTP Headers für FF oder mit der URL "about:net-internals" unter Chrome. Unter .Net dann via RegEXP nach der Videosource matchen, und fertig ;-)

holy
18.04.2012, 16:00
Sollte ja reichen, wenn Du die Source von YouTube verwendest. Um an das Video zu kommen, musst Du erstmal nachschauen, wo sich dieser im HTML, XML und sonstwas unter Youtube versteckt hat. Analysieren kannste dies am besten mit LiveHTTP Headers für FF oder mit der URL "about:net-internals" unter Chrome. Unter .Net dann via RegEXP nach der Videosource matchen, und fertig ;-)

YouTube hat eine API ^^
Wie auch immer. Metro-Apps sind etwas anders als reguläres WPF/Silverlight. Der MediaPlayer bzw. das MediaElement erwarten einen Stream, der IRandomAccessStream implementiert, keine URL.

PapstRatze
18.04.2012, 16:04
@holy: Ich habe nicht mit setSource gearbeitet, sondern lediglich mit der Eigenschaft Source (die eine Uri nimmt) Hatte des irgendwie im Kopf, "glaube" (ganz wage) das man des mit dem Windows Media Player in VS10 noch machen konnte.
@sasdensas: Das wurde im Vorhinein schon erledigt.

Habe es aktuell jetzt über nen WebView geregelt, ich versuche mal die neuen Infos dir mir holy gegeben hat zu integrieren.

holy
18.04.2012, 16:09
Btw., was mir grad eingefallen ist.
Hat deine App Zugriffsrechte auf's Internet (Client)?

sasdensas
18.04.2012, 16:13
YouTube hat eine API ^^
Wie auch immer. Metro-Apps sind etwas anders als reguläres WPF/Silverlight. Der MediaPlayer bzw. das MediaElement erwarten einen Stream, der IRandomAccessStream implementiert, keine URL.

Auch für den Direktlink zu den Videodateien? Damals war es noch nicht in der API enthalten :rolleyes

PapstRatze
18.04.2012, 16:37
@holy: yupp hat es. (bzw. habe ich ein Häkchen gemacht) anders würde wohl auch der WebRequest nicht funktionieren und ich nicht an meine Links kommen.

Habe übrigens keine Ahnung gerade wie ich aus dem Link irgendwie einen StorageStream bekommen soll. Mir fällt lediglich ne Möglichkeit ein nen IO.Stream zu bekommen (gleicher Weg wie ich eben an den Inhalt der Seite komme) Sind halt einige Sachen noch ziemlich neu für mich ^^ ist jetzt auch zum ersten mal das ich mit Tasks arbeite. Insofern ist noch Lernbedarf :D.

#EDIT: Ich glaube ich bleibe beim WebView, das funktioniert jetzt so wie ich es haben möchte ;). Es reicht wenn ich die Videos abspielen kann, brauche keine weiteren Möglichkeiten der Kontrolle mehr.