Tilpasset licens forespørgsel via Silverlight Smooth Streaming Player
Hejsa, beklager på forhånd den lange forklaring...Jeg har kort fortalt brug for noget hjælp til, at sende en tilpasset licens forespørgsel til en specifik webserver, igennem min Silverlight Smooth Streaming afspiller.
Dette er min kode til afspilleren:
<object id="silverlight" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="700" height="427">
<param name="source" value="../SmoothStreamingPlayer.xap">
<param name="onError" value="onSilverlightError">
<param name="onLoad" value="onSilverlightLoad">
<param name="background" value="black">
<param name="windowless" value="true">
<param name="minRuntimeVersion" value="5.0.61118.0">
<param name="autoUpgrade" value="true">
<param name="enableGPUAcceleration" value="true">
<param name="initParams" value="mediaurl=<?php echo $MediaUri; ?>">
</object>
$MediaUri indeholder URL'en til en isml/Manifest. Når jeg starter afspilningen, kan jeg se at afspilleren registrerer video og lyd feed'et, men den begynder ikke at afspille noget :(
isml/Manifest URL'en genereres igennem et PHP/cURL script, som logger ind på teliatv.dk via mine login-oplysninger, gemmer en session cookie og decoder derefter URL'en fra et JSON-dokument på domænet.
Jeg har forsøgt mig med at bruge teliatv.dk's Everywhere.Player.xap til at afspille URL'en med, men den kan jeg slet ikke få til at virke på min side, og har heller ikke lyst til det, da det netop er på grund af deres afspiller, at jeg forsøger at afspille URL'en i min egen afspiller.
XAP-filer:
http://www.teliatv.dk/everywhere/player/Everywhere.Player.xap
http://clubace.dk/SmoothStreamingPlayer.xap
Med en netværkssniffer har jeg fundet ud af, at webseveren returnere en fejlkode 500 (Internal Server Error) 'Invalid POST data'.
The client request must include CustomData element or the deviceID query parameter must be set.
Netværk-rapporter:
http://clubace.dk/SmartSniff/SmartSniff_teliatv.txt
http://clubace.dk/SmartSniff/SmartSniff_localhost.txt
Den let læselige XML data sendt til webserveren:
Sendt fra teliatv.dk: http://clubace.dk/SmartSniff/xml_teliatv.txt
Sendt fra localhost: http://clubace.dk/SmartSniff/xml_localhost.txt
Udfra fejlkoden ser det ud til, at SmoothStreamingPlayer.xap indeholder en eller flere dll-fil/er som ikke er sat op til at sende et deviceID via ChallengeCustomData.
Nu skal det hurtigt siges, at jeg absolut ingen forstand har på C#. Alligevel har jeg dog prøvet at kaste mig ud i, at decompile dll-filerne fra begge xap-filerne via et program ved navn Telerik JustDecompile.
Screenshots fra JustCompile:
JD screenshot #1: http://clubace.dk/ScreenShot/jd_screenshot1.png
JD screenshot #2: http://clubace.dk/ScreenShot/jd_screenshot2.png
Selvom jeg tror, jeg kan se mig ud af sådan cirka hvor i Everywhere.Player.xap's dll-filer deviceID'et defineres og hvordan licens forespørgselen laves, kan jeg hverken finde ud af bruge JustDecompile eller MS Virtual Studio ordenligt, hvilket hæmmer processen gevaldigt :S
Jeg er dog netop faldet over dette forum-indlæg (https://playerframework.codeplex.com/discussions/441013), hvor i det fremgår, at der eksisterer et JavaScript bibliotek som kaldes for WinJS, som igennem lidt tilpasning, lader til at kunne klare opgaven udenom dll-filerne.
Desværre må jeg, efter at have hentet WinJS biblioteket, erkende at jeg ikke kan gennemskue hvordan man bruger det til formålet :(
Håber der er nogen der kan hjælpe mig videre, da jeg har siddet fast i godt en uge nu. En hver assistance tages i mod med kyshånd :)