Het koppelen van Flash aan C# / VB.Net

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Beste tweakers,

Als .Net en Silverlight programmeur wil ik eens kijken hoe makkelijk of moeilijk het is om vanuit een .Net applicatie Flash te ondersteunen. Na een tijdje op Google te hebben gezeten, is mij nog steeds niet helemaal duidelijk hoe en wat, en dan vooral wat ik nodig heb (ik heb totaal geen kennis van Flash verder).

Het eerste wat ik wil bereiken is het afspelen van een FLV in .Net. Later wil ik dan ook dat de objecten met elkaar communiceren, maar dat komt dan wel.

Nu zijn er allemaal dingen die ik tegen ben gekomen als ActionScript en het Flex framework. Sommige mensen referencen flash.ocx, anderen gebruiken een Scout library ofzo.

Maar wat moet ik nu precies gebruiken hiervoor? Wat is zeg maar de aanbevolen manier? Wat moet ik installeren op mijn pc voordat het werkt?

Als iemand mij een pointer in the right direction kan geven, dan zoek ik het vanaf daar wel weer verder uit :)

Alvast bedankt.

PS:
De opdracht die ik heb, is om in een bestaande stand-alone WPF applicatie Flash support in te bouwen.

[ Voor 16% gewijzigd door Lethalis op 09-06-2009 10:06 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • beany
  • Registratie: Juni 2001
  • Laatst online: 16:08

beany

Meeheheheheh

Beetje vreemd om Flash in een WPF te gaan hosten, maar goed...

Ik denk dat het simpelste is om de Flash OCX op te nemen in een WPF container. Hiervoor hoef je geen rare dingen te installeren. De Flash ocx staat op je machine als je Flash geinstalleerd hebt staan.

WPF kent constructies om WinForm elementen op te nemen. Een google op WPF en WinForms zou daar meer info over geven.

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
beany schreef op dinsdag 09 juni 2009 @ 10:51:
Beetje vreemd om Flash in een WPF te gaan hosten, maar goed...

Ik denk dat het simpelste is om de Flash OCX op te nemen in een WPF container. Hiervoor hoef je geen rare dingen te installeren. De Flash ocx staat op je machine als je Flash geinstalleerd hebt staan.

WPF kent constructies om WinForm elementen op te nemen. Een google op WPF en WinForms zou daar meer info over geven.
Het uiteindelijke doel is een media player die zowel plugins kan laden en afspelen die in WPF zijn gemaakt, als ook Flash objecten (die evt worden aangeleverd door andere partijen). Dus ja, dan moet je wel :)

Is de Flash external API nog wat?

[ Voor 3% gewijzigd door Lethalis op 09-06-2009 13:02 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • beany
  • Registratie: Juni 2001
  • Laatst online: 16:08

beany

Meeheheheheh

Misschien een raar idee, maar is het niet wat om een browser control op te nemen in je WPF App ?? Die kan Flash, Silverlight en HTML afspelen/tonen. Doormiddel van default HTML kan je zo elk flash of silverlight dingetje afspelen. En de browser control zit standaard in WPF volgens mij :)

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
beany schreef op dinsdag 09 juni 2009 @ 13:30:
Misschien een raar idee, maar is het niet wat om een browser control op te nemen in je WPF App ?? Die kan Flash, Silverlight en HTML afspelen/tonen. Doormiddel van default HTML kan je zo elk flash of silverlight dingetje afspelen. En de browser control zit standaard in WPF volgens mij :)
Daar is al wel over nagedacht inderdaad :)

Ik weet alleen nog niet zo goed hoe ik dan events kan afvangen. Het moet namelijk ook zo werken dat wanneer bijvoorbeeld een Flash filmpje klaar is, vervolgens het volgende item wordt afgespeeld (wat dan weer een Silverlight iets zou kunnen zijn), etc. Dus ik moet een Finished event ofzo krijgen in de host applicatie.

[edit]
http://www.9lives.be/foru...r-control-opvangen-c.html

Moet ik nog testen :)

[ Voor 9% gewijzigd door Lethalis op 09-06-2009 14:05 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Lethalis schreef op dinsdag 09 juni 2009 @ 13:58:
[...]

Daar is al wel over nagedacht inderdaad :)

Ik weet alleen nog niet zo goed hoe ik dan events kan afvangen. Het moet namelijk ook zo werken dat wanneer bijvoorbeeld een Flash filmpje klaar is, vervolgens het volgende item wordt afgespeeld (wat dan weer een Silverlight iets zou kunnen zijn), etc. Dus ik moet een Finished event ofzo krijgen in de host applicatie.
Dan kun je eventueel met ExternalInterface afhandelen, in je JS kun je dan beslissen of je een nieuw Silverlight/Flash object gaat laden.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
zwippie schreef op dinsdag 09 juni 2009 @ 14:04:
[...]
Dan kun je eventueel met ExternalInterface afhandelen, in je JS kun je dan beslissen of je een nieuw Silverlight/Flash object gaat laden.
Bedankt :) Dat kan ik dus in combinatie gebruiken met:

http://www.9lives.be/foru...r-control-opvangen-c.html

WPF WebBrowser control -> HTML/JS -> Flash

En weer terug :)

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Gimmeabrake
  • Registratie: December 2008
  • Laatst online: 23-08 10:45
Ik kan je uit ervaring vertellen dat flash via activex echt een ramp is in .Net. Ik moest het zelf ondersteunen in een VB.Net applicatie(een videoplayer), en het was een heel gedoe om het aan de praat te krijgen.

Heb de brondcode helaas niet meer, ik weet alleen dat ik een wrapper had gebouwd voordat ik hem in mijn project gooide en dat ik via google een of ander vage workaround had gevonden voor het probleem dat de flash activex-component in VB.Net een of ander error laat zien als je hem in je form probeert te gooien.

Ik raad je dus ook de webbrowser aan, hoewel je daardoor waarschijnlijk wat meer moeite zult hebben om de events af te vangen, dit gaat met de activex-control wel lekker makkelijk :)

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Update: Het werkt! :)

Ik gebruik nu gewoon het WPF Webbrowser control dat een html pagina laadt met daarin het Flash object. Het Flash object bevat de ExternalInterface.call die een JavaScript functie kan aanroepen.

Deze JS functie roept op z'n beurt weer via window.external.MyMethod() een .Net functie aan in mijn host die ik heb geexposed via een ComVisible class die is toegekend met de ObjectForScripting property aan het WebBrowser object.

Ik kan nu dus gewoon Flash in WPF afspelen en ermee communiceren via JavaScript _/-\o_

PS:
Moest nog wel even een Mark Of The Web ding doen om van die vervelende security balk af te komen:

<!-- saved from url=(0014)about:internet -->

Pfff :+

[ Voor 14% gewijzigd door Lethalis op 11-06-2009 08:30 ]

Ask yourself if you are happy and then you cease to be.

Pagina: 1