※動画を再生すると音が出ますのでご注意ください。
SXMでは珍しく動画なんかも撮ってきました。AAの離陸と,COの着陸の映像です。AAのほうは,前回のエントリーで書いたジェットブラストの様子が少し映ってます。
ちなみに,埋め込みプレイヤは自作のSilverlightアプリです。こんなチープなデザインのプレイヤは,たぶん僕しか使わないと思われます(笑。半日ぐらいで出来るかなぁと思ったけど,タイムラインスライダの処理が案外面倒くさくて苦戦。それでも1日かけずに出来たのはわずかながらの慣れでしょうか。
タイムラインスライダの何が面倒くさいって,現在位置を追っかけるためにタイマ処理が必要になるわけですが,そのタイマ処理のやり方が分からなかったこと。あと,「再生中に自動的にスライダが移動して数値が変更される」,「マウスやキーボード操作で手動でスライドを移動して数値が変更される」という状況の両方で同じイベントが発生するので,両方の機能を実装するとちゃんと再生されなくなってしまいました。よって,自動的にスライダが移動したときは,このイベントを実行しないようにイベントハンドラを解除して,移動後にイベントハンドラを登録し直すという処理が必要になる。みたいな。勉強になりました。
その点,再生ボタン,停止ボタン,ボリュームスライダは簡単に作れるます。ボリュームスライダは,Silverlight2だとスライダの値が変更されたときにイベントを実行させてC#なりのコード側で処理しないといけないんですけど,Silverlight3だとxaml側でバインドして処理させられる”らしい”です。それは確かに便利です。
ちなみに,なんで無理してプレイヤを自作したかっていうと,作ってみたかったというのはもちろんなんですが,動画をリソースとしてxapに埋め込んでおくと,動画ファイル自体をサーバに置かなくて済むので,動画をダウンロードされにくいというメリットを感じたからです。別に,この動画をダウンロードされたくないってわけではなく,そういうことができることを確認したかったのいうのが大きなインセンティブになっております,はい。
あと,どうでもいいんですが,Silverlight関係のWebなり書籍なりって,BlendかVisual Studioを使ったものばかり。xamlとVB/C#のコーディングをまとめてできる開発ツールとしてはVisual Web Developer 2008 Expressって凄く良いです。xamlをもうちっと頑張れば(blend並みってのは難しいけど)そこそこのデザインでRIAっぽいものが作れます。僕はどっちかっていうと仕組みを作るのが楽しい人なので,Blend買ってまで何かやろうとは思いませんし。なので,VWDを使ったSilverlight入門みたいな記事を読みたいなぁなんてことを思ってたりしてます。


今ごろコメントに気が付きました。大変申し訳ありません。
いまさらですが,コメントありがとうございます。
僕のソースも基本的には,ねこりんさんが書いてらっしゃるのと同じ内容です。
(Nameまでほとんど同じです/笑)
参考までに,ソースです。
private void change_volume(object sender, RoutedPropertyChangedEventArgs e)
{
if (movie != null)
{
movie.Volume = this.volume_slider.Value;
}
}
おそらく,if (movie != null)の処理を入れないとエラーになると思います。
Silverlightでググってたら、こちらにたどり着きました。
私はSilverlight2.0でオリジナルプレイヤー作っているのですが、ボリュームで手こずってます。
xamlでsliderにValueChangedくっつけて、c#でイベント読み出して、
movie.Volume = volumeSlider.Value;
で、スライダ値を動画ファイルボリュームに入れたいのですが、そのままでは動きません。
う~ん、どこが悪いのか...サッパリです...