[今更聞けないかも] Silverlight 2ランタイムに対するHTML タグからのパラメータ受け渡し

MSDN Silverlightフォーラムでも質問があり、よくお客様にも聞かれるものですが、Silverlightのプラグインを初期化する際に、HTML側からカスタムパラメーターを受け渡すことができます。メディアプレイヤーの再生内容を指定する場合や広告バナーのクリック後のURL指定など、動的にアプリケーションのふるまいを設定する場合に利用すると便利です。

方法は、MSDNライブラリに記載されています。<object>タグの中に、

<param name="initParams" value="key1=value1"/>

のように、キーと値のペアを記述することです。キーが複数存在する場合は、

<param name="initParams" value="key1=value1,key2=value2,key3=value3…"/>
のように複数のペアをカンマで区切って並べることができます。

「カスタム初期化パラメータを指定および取得する」
https://msdn.microsoft.com/ja-jp/library/cc189004(VS.95).aspx

ご注意いただきたいのは、App.xaml.csのApplication_Startupメソッドの中で値を受け取るということと、Page.xaml.csにはアプリケーション開発者が指定して値を渡すということです。
https://msdn.microsoft.com/ja-jp/library/system.windows.startupeventargs.initparams(VS.95).aspx

 

initParamsに渡せる値は単純な文字列に限らず、XML文字列も渡せます。Expression Encoder 2 SP1が生成するメディアプレイヤーが代表例ですが、再生リストやサムネイルなどのメタ情報をXMLで受け渡しています。

例:

<param name="initparams" value='autoplay=True,autoload=True,enablecaptions=True,muted=False,stretchmode=0,displaytimecode=False,

playlist=<playList><playListItems><playListItem title="" description="" mediaSource="video2008.wmv" adaptiveStreaming="False" thumbSource="" frameRate="29.97" width="640" height="360" ><chapters><chapter  position="25.967" thumbnailSource="video2008_25.967.jpg" title="a" /><chapter  position="123.207" thumbnailSource="video2008_123.207.jpg" title="b" /><chapter  position="185.086" thumbnailSource="video2008_185.086.jpg" title="c" /><chapter  position="267.961" thumbnailSource="video2008_267.961.jpg" title="d" /></chapters></playListItem></playListItems></playList>' />

 

ASP.NET Silverlightコントロールにおいてもパラメータ渡しができます。

MSDNフォーラムの「mediaelementのsourceをASP.NETのページから設定するには」をご参照ください。
https://social.msdn.microsoft.com/Forums/ja-JP/silverlightmediaja/thread/ff330de5-4125-4888-8af7-c69315ae9a35