Welcome to MSDN Blogs Sign in | Join | Help

第83回 MSDNオフラインセミナー 「Silverlight ではじめるメディア配信」 2008/6/5 18:30-

「Silverlight ではじめるメディア配信」というテーマでセミナーを行うことが決まりました。

日時: 2008/6/5 18:30-20:00

会場: マイクロソフト株式会社 新宿オフィス 5F セミナールーム A&B

下記のURLから申し込みができますので、興味のある方はどうぞ。

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032378545&culture=ja-JP

Posted by aonishi | 0 Comments

How to set Japanese font on Silverlight 2 Beta 1:フォントを指定して日本語表示を行う時のポイント

English summary: This post introduces you to how to use Japanese font on Silverlight 2 Beta 1.
If you use Japanese characters in your Silverlight 2 apps, please do the following.

(1) To specify xml:lang property at any level in your XAML,
(2) To set the FontFamily property with Japanese font name in non-Japanese OS.
  "MS Gothic" "MS PGothic" "MS UI Gothic" "MS Mincho" "MS PMincho"
 ”Meiryo"


 ここからは記事の本文で、日本語で書きます。

今日から、Silverlight 1.0しばりを解きます。

Silverlight 2で重要な機能として、アジア圏の言語サポートというのがあります。日本語・韓国語・中国語、それぞれ異なるフォントが存在する中で、きちんと画面を構築するにはどうしたらいいでしょうか。

この投稿では、Silverlight 2 Beta 1でフォントを指定して日本語表示を行う時のポイントを書きます。フォントを指定しなかった場合は、MS ゴシックが利用されるようになっていますが、FontFamilyプロパティでMS ゴシック以外のフォントを利用することもできます。

Silverlight 2 Beta 1におけるフォント指定による日本語表示のポイントは、次の通りです。

1.    xml:lang="ja-JP"という記述をXAML中に含めます。
xml:langは、オブジェクト単位で個別指定もできますし、一番上位のオブジェクトに指定する簡単な方法もあります。

2.    FontFamily="<フォントの名前>"で日本語のフォント名を指定する際に英語表記を使います。
日本語表示用のWindowsにおける主要なフォント名の英語表記は次の通りです。

“MS 明朝” → “MS Mincho”

“MS P明朝” → “MS PMincho”

“MS ゴシック” → “MS Gothic”

“MS Pゴシック” → “MS PGothic”

“メイリオ” → “Meiryo”  ※ 4/18追記、ただし、Silverlight 2 Beta 1では表示されないことに注意

XAMLの例1: TextBoxにxml:lang を指定した例

<UserControl

        xmlns="http://schemas.microsoft.com/client/2007"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        x:Class="sl2ea02.Page"

        Width="640" Height="480">

 

        <Grid x:Name="LayoutRoot" Background="White" >

                <TextBox xml:lang="ja-JP" Height="132.8" Margin="98,87,163,0" VerticalAlignment="Top" FontFamily="MS PMincho" Text="ここに日本語を書きます"/>

        </Grid>

</UserControl>

 

XAMLの例2: UserControlにxml:lang を指定した例

<UserControl

        xmlns="http://schemas.microsoft.com/client/2007"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        x:Class="sl2ea02.Page"

        Width="640" Height="480" xml:lang="ja-JP">

 

        <Grid x:Name="LayoutRoot" Background="White" >

                <TextBox Height="132.8" Margin="98,87,163,0"
VerticalAlignment
="Top" FontFamily="MS Gothic" Text="ここに日本語を書きます"/>

        </Grid>

</UserControl>

・・・ 

これを応用すると、次のような画面が作れます。

※ 4/18追記:メイリオ部分は正しく表示されていないのが確認できると思います。

Siverlight 2 Japanese font support

皆さんもお試しください。

 

 

Posted by aonishi | 0 Comments
Filed under: ,

Expression Blend 2とVisual Studio 2008でSilverlight 1.0しばりな開発

世界で多くの.NETな開発者がSilverlight 2に向き合っていると思いますが、私は、Silverlight 1.0レベルでのチャレンジを続けています。

理由としては、Silverlight 2がまだBeta 1なので・・・、というものなのですが、JavaScriptだけでもできる範囲はそれなりにあって、.NET言語を知らなくてもSilverlightを使う世界というのもきちんと知っておこうと考えているからです。

もちろんSilverlight 2になれば楽になる部分が相当あることは十分に知っています。Silverlight 2が正式なリリースを迎えてもJavaScriptベースのAPIで作られたものはそのまま動くので、Silverlight 1.0しばりというのは、かならずしも無駄ではないと思っています。
(でもそろそろ、Silverlight 2の開発環境をしっかり整えていろんなサイト構築の開発支援に備えなければいけませんが。。。)

この制約の中で作業していると、Expression Blend 2/2.5とVisual Studio 2008を行き来するのがとても便利であることを実感できます。

Blend側でオブジェクトを配置したら、必ず名前をつけるようにします。これをPage.xaml.js内では、handleLoadメソッドの中で、

this.MyObject = control.content.findName("MyObject");

という形でXAML内のオブジェクトをJavaScriptのオブジェクトに変換できます。これを癖付けると、プログラミングで利用するオブジェクトは、かならず同じプロトタイプのスコープ内で、this.MyObject の形式で参照できるようになります。Canvasだけではなく、アニメーションを実行する際のStoryboardも同様の方法で参照できるので、

this.MyStoryboard = control.content.findName("MyObject");

という形で変数に閉じ込めておけば、

this.MyStoryboard.Begin();

とすることで、いつでも実行できます。JavaScriptのprototypeをゼロから自分で書かなくても、雛形はExpression Blend 2/2.5でSilverlight 1.0用のsiteを構築した際に作られるので、そこを拡張していけばよいわけです。

イベントはどうしたらいいでしょうか。基本的に、addEventListenerメソッドとSilverlight.createDelegateメソッドを使ってマッピングしていきます。たとえば、MyCanvasという名前のCanvasにおけるマウスイベントを考えましょう。またMyCanvasがクリックされた時に実行されるアニメーションをMyStoryboardという名前のStoryboardに定義してあると仮定します。この場合、MyCanvas上で発生するマウスイベントのイベントハンドラを次のように記述できます。JavaScriptに慣れてない方でも、なんとなくこのイベント処理の流れは理解できるのではないでしょうか。

handleLoad: function(control, userContext, rootElement) 
{
    this.control = control;
    this.MyCanvas = control.content.findName("MyCanvas");
    this.MyStoryboard = control.content.findName("MyStoryboard");
    this.MyCanvas.addEventListener("MouseMove", 
Silverlight.createDelegate(this, this.handleMouseMove)); this.MyCanvas.addEventListener("MouseEnter",
Silverlight.createDelegate(this, this.handleMouseEnter)); this.MyCanvas.addEventListener("MouseLeave",
Silverlight.createDelegate(this, this.handleMouseLeave)); this.MyCanvas.addEventListener("MouseLeftButtonDown",
Silverlight.createDelegate(this, this.handleMouseDown)); this.MyCanvas.addEventListener("MouseLeftButtonUp",
Silverlight.createDelegate(this, this.handleMouseUp)); }, handleMouseMove: function(sender, eventArgs) { }, handleMouseEnter: function(sender, eventArgs) { }, handleMouseLeave: function(sender, eventArgs) { }, handleMouseDown: function(sender, eventArgs) { }, handleMouseUp: function(sender, eventArgs) { this.MyStoryboard.Begin(); },
このようにコードをVisual Studio 2008上で書いていくことで、アプリケーションの動きを作れます。ストーリーボードの代わりに、たとえば、
this.MyVideo = control.content.findName("MyVideo");
のように MediaElementを参照する変数を準備して、
handleMouseUp: function(sender, eventArgs) 
{
    this.MyVideo.Play();
},
という形で、MyCanvas上をクリックしたらMyVideoで参照できるビデオファイルを再生する、というコードが簡単に書けます。
Blendで画面を構築する <--> Visual Studio 2008でイベントを実装する
この往復を繰り返すと、目的とするアプリケーションの完成に近づきます。 JavaScriptのprototypeが大きくなっていくのが気になるかもしれませんが、まずは、prototype内においてやりたいことを並べていくのが完成への近道だと思います。それとVisual Studio 2008を使えば、JavaScriptのデバッグが可能なので、気になる動きに対してブレークポイントを設置して、ステップ実行することもできます。
これは期待通りにプログラムが動かないときにとても便利ですが、1点だけご注意を。JavaScriptのprototypeを記述する際に、追加したメソッドの最後が,で終わってないようにしてください。
あるいは、追加したメソッドの名前のひとつ前に必ず,が入っているようにしてください。これを忘れると、Visual Studioが別のjsファイルのエラーとして例外を捕捉するのですが、そのファイルにはエラーがないので、すぐに原因がわかりません。
これを一度体験したら2度目からはすぐに対処できるのですが、最初はびっくりするので、事前知識として持っておいて損はないです。まずは簡単なところから繰り返してみるといいでしょう。もちろん、Microsoft Visual Web Developer 2008 Express Editionを使って同様のことができますので、Silverlightに興味があるけど、開発環境が・・・、と悩まれている方々にはダウンロードして利用してみてください。

PowerPointプレゼンテーションと同様のことをSilverlightでやってみる

詳細はゆくゆく紹介していこうと思いますが、現在、とあるプロジェクトで、PowerPointのプレゼンテーションと同様なことをSilverlight 1.0で実行するというアプリケーションを作っています。

プレゼンテーションのファイル内容を分析して・・・などと難しいことは考えず、スライドで動きがないところは、Imageで静止画像を利用し、ビデオが必要なところはMediaElementで、スライド切り替わりやアニメーションはStoryboardでというシンプルな構造でやっています。これがやってみると結構面白いもので、ブラウザの全画面表示にすると、もはやSilverlightで実行しているように見えないのも面白いです。

似たようなことにチャレンジする方がいるかもしれないので、次のような作業が可能であることを知っておくと、時間を短縮できるでしょう。

(1)PowerPointプレゼンテーションの再利用

・すべてのスライドは、JPEGあるいはPNG形式でエクスポートできる(PowerPoint 2007だと960x720の解像度になる)
・プレゼンテーション内の日本語をコピーして、Expression Blend 2に貼り付けて、TextBlockをPathに変換することができる
・日本語部分のコピーをする際に、貼り付け直後に半角の文字を入れると消える確率が下がる
・複数の色を用いているリッチテキストは、色別にコピーする方がよい(TextをPathに変えると色情報がなくなるから)
・図の部分は、[図の保存]から静止画にするか、コピーした上で、Expression Designに貼り付けてXAMLをエクスポートする際にできあがる静止画を利用して使う(この際に、出来上がった画像ファイルを使い、XAMLそのものは使わない)

(2)単純なアニメーションの再現

・フェードインするようなものは、Opacityプロパティを0%から100%の間で変化するStoryboardを作ると簡単

(3)クリッカブルエリアの作成

・複数のオブジェクトを含む領域全体としてイベントを拾う場合、Canvasでグループ化し、Canvas内のオブジェクトは、個別にIsHitTestVisible=falseと設定して、event bubblingを避ける
・マウスイベントに反応するエリアは、CanvasのFillプロパティで黒色などを選択しておき、アルファ値を0にして、透明でイベントに反応する場所を作る

・・・

単純に作ると、1つのXAMLファイルと1つのJavaScriptの中で作業を完結できると思います。ゆくゆくサンプルのひとつとして公開したいと思います。

インターネットでの検索に依存しない開発作業

このところ縁あって、完全にネット環境から隔離された場所で、開発を行う機会があり、非常に新鮮な気持ちで向き合っています。外部のネット(パソコン通信含む)が使えない場所での開発というのは、おそらく15年ぶりくらいかもしれません。思えば、DOS上で開発していた頃は、技術情報を探すのも一苦労。参考資料がすぐに手に入るわけでもなく、手元にある開発キットや言語やライブラリの説明書があればまだまし、という時代。

このところ、ネットにアクセスできないオフライン、スタンドアロン環境での開発作業をしてみて、ふと思ったこと。

「時に、インターネットを参照しない方が、目の前の開発作業にものすごく集中できる」、ということ。自分自身でも驚きで、一方で、このところの習慣として、なんとなくLive Searchにアクセスする、みたいなことが多かったようにも思います。

オフラインとは言え、SilverlightのSDKドキュメントや、MSDNライブラリはPCに入っているわけです。でも、結局参照したのは、SDKのヘルプの数ページ程度。あとは、ともかく頭で考え、手を動かし、テストしながら実装し、デバッグし、物事をまとめていく。

やればできるものなんだなぁ、とちょっとした感動。つまりはソフトウェアを開発する上での基本的なことを繰り返しただけに過ぎないんですが、常時接続のインターネットが当たり前の時代だと、初心を忘れてしまうことがあるのかもしれません。

皆さんも、たまには意図的にネットの検索に頼らないで、自分のアイディアに集中してみませんか。

Posted by aonishi | 1 Comments
Filed under:

もっと地道に説明する必要があるのかも - Silverlight

先週の技術セミナーを終えて、いろんな人と話す機会があって、今週も別件で、Q&Aを行なう機会があったのですが、やはり、Silverlightについて、もっと基本的な部分をきちんと知ってもらった方がいいなぁ、と感じています。

Silverlight SDKのドキュメントしか頼るところがなくて、しかも英文のみということで、手を出したくても出しづらいという方は多いのではないでしょうか。また、目先の問題を切り分けるのが難しくて、何か問題があっても相談できる相手がいないという悩みを抱えている技術者の方が多いようにも思います。

Silverlightは、JavaScriptレベルでの開発と、.NETレベルでの開発の二つに分かれるのですが、まだしばらくはJavaScriptレベルでのメディア再生やアニメーション実行という観点で使い方を学ぶ方がいいようにも感じています。特にVisual Studio 2008がJavaScriptに対応し、デバッグ環境を提供するようになったので、今までよりも開発効率がよくなっていると思います。

うまくできるかどうかは、ひとつのチャレンジなのですが、スクリーンキャストを通じて説明の機会を増やせないかと考えています。

Silverlight 2になればなったで、開発の幅がぐーんと拡がるのですが、まずはSilverlight 1.0で簡単だけど効果の高いメディア再生を通じた開発をいろんな人に行なってもらえたらと思っています。

Posted by aonishi | 0 Comments

test 2 : popfly

Posted by aonishi | 1 Comments
Filed under:

Silverlight streamingのテスト

最初にご注意願います。この記事は、Silverlightが入っていないブラウザからはプレイヤー部分が見えません。

来週のセミナーでも取り上げますが、Expressino Encoder+Silverlight streamingを使うと、こんなことが簡単にできてしまいます。

自動再生すると多くの方に迷惑をおかけするので、下に表示されている青い水平線あたりにマウスカーソルを移動して、再生ボタンを押してみてください。

ビデオの内容はすでに公開しているScott Guthrieのものからの抜粋ですが、Silverlightのアプリケーションとしてのビデオプレイヤーを組み込んでいるので、サムネイル機能も使えます。

これをいったいどうやって作るか、そのあたりは来週のセミナーで紹介し、その後、ブログでも取り上げたいとい思います。

2/26 Silverlightアプリケーション開発セミナーの内容について

現在、シアトル出張中の傍ら、セミナーの内容をいろいろと絞り込んでいます。

会場のネットワーク環境によって調整が入るかと思いますが、現時点では下記の内容をカバーしようと思っています。

(1)Silverlightアプリケーションのイロハ
  1.0ベースの話になりますが、アプリケーション開発に向き合うための最低限のポイントを紹介

(2)テキストエディタだけでやってみよう
  画像の表示、ビデオ再生、意外と簡単、でも注意点もあるので、それを踏まえて紹介

(3)Expression Blend 2, Expresion Encoder, Visual Studio 2008での開発プロセス
  アニメーション+ビデオの組み合わせによるアプリケーション開発を通じて、どのように進めるかを紹介

(4)WebサーバやSilverlight streamingでのアプリケーション展開
  アプリケーションはできたけど、どこにおけばいいの?Webサーバへの配置やインターネット上で使えるサービスを紹介
  配置したアプリケーションをどうやってWebページに表示する方法も紹介

(5)フリーディスカッション
  (1)-(4)でカバーしてないことも踏まえて、答えられる範囲でQ&A

メディア再生を中心としたシナリオでお話をする予定ですが、たぶんセミナーの時間に比較してかなり話の密度が濃くなることが予想されます。(1)-(4)の中でも自由に質問していただけるようにしたいと考えています。

ともあれ、肩の力を抜いて参加していただければ幸いです。

皆様の参加をお待ちしております。

Posted by aonishi | 1 Comments

2008/2/26-Silverlightアプリケーション開発セミナー

今月下旬に、Silverlightの技術セミナーを実施します。Silverlight 1.0+JavaScriptが中心となりますが、私の経験を踏まえてお話したいと思います。

受付は2/21までなので、興味のある方はご参加ください。



Silverlightセミナー~その概要と開発手法について~

http://www.mosa.gr.jp/?p=1477

日 時:2008年2月26日(火)13:30~16:30
会 場:株式会社毎日コミュニケーションズ 新宿オフィス 「新宿マイナビルームE」
  〒163-1514 東京都新宿区西新宿1-6-1 新宿エルタワー14F(JR・丸ノ内線 新宿駅徒歩約3分)

主 催:特定非営利活動法人MOSA
協 力:マイクロソフト株式会社、マイクロソフトディベロップメント株式会社
協 力:株式会社毎日コミュニケーションズ
定 員:80名
参加費:無料

Posted by aonishi | 2 Comments

TechReady 6のためシアトルにきてます

マイクロソフトの社内イベントでシアトルにきています。

TechReadyというトレーニングを中核としたもので、イベントの詳細についてはブログに書けないのですが、会場はシアトルのダウンタウンで人目につくため、イベントをやっていることをブログに書くことは許可されています。

2/11-2/15まで、毎日5日間、こてこてに技術やディスカッションに集中できるものです。

世界中から数千人の規模で参加者が集まり、数百のセッションが開催され、もちろん英語でのトレーニングです。時差や言葉の違いなどいろいろありながらも、発見やフィードバックや、ともかく参加者がパワーアップするには最適な機会です。

今度皆さんにお会いするときは、パワーアップした私でいたいと思ってます。

 

Posted by aonishi | 1 Comments
Filed under:

Scott Guthrieインタビュービデオ、ダウンロードとメディアプレイヤーでの再生に対応しました

MSDN Onlineに寄せられたご意見に対応するために、公開中のビデオコンテンツはそのままで、ダウンロードへのリンクや、WMVに対応したメディアプレイヤーで再生する場合のリンクをつけました。

http://www.microsoft.com/japan/msdn/events/vs2008/scott/interview.html

ダウンロードできるビデオのファイルサイズは、88.8MB、解像度は640x480です。

Silverlightがインストールできずに見られないという皆様には、こちらからビデオをダウンロードしてご覧いただきたいと思います。

Posted by aonishi | 1 Comments
Filed under: ,

Scott Guthrieインタビュー(2008年1月20日撮影)、公開しました

Silverlightで配信するビデオとしては、7本目の作品となります。様々な開発者の皆さんにご覧いただきたいと思います。

http://www.microsoft.com/japan/msdn/events/vs2008/scott/interview.html

撮影から公開まで8日程度で作業を終えられたのは、いろんな人の協力があったおかげです。特に今回は、デベロッパー製品部の協力により、いろんなお話を聞けました。また日本語字幕を起こす作業も協力いただいてます。

撮影、編集、字幕をビデオに載せる作業、エンコード、サムネイル作成、Silverlightアプリケーションへの組み込みは私が行っています。ページそのものも、極力追加のコードを書かないようにして、Expression Media Encoderのテンプレートを活用して作成しています。

お気づきの点がございましたら、お知らせください。

Posted by aonishi | 2 Comments

.NET 3.5 Technical_Briefing videos by Silverlight: ビデオ公開しました

素材にして12時間を超える動画から6本のビデオをまとめあげました。
技術セッション中のスクリーンと講演者の様子が同時に見られるビデオになっています。

再生には、Silverlight 1.0または1.1 Alphaが必要です。

全部で6時間近いセッションですので、計画的にご覧ください。

Opening:
http://www.microsoft.com/japan/msdn/events/briefing/webcast/opening.html

Session 1: 萩原さん
http://www.microsoft.com/japan/msdn/events/briefing/webcast/session1.html

Session 2: 平野さん
http://www.microsoft.com/japan/msdn/events/briefing/webcast/session2.html

Session 3:  佐藤さん
http://www.microsoft.com/japan/msdn/events/briefing/webcast/session3.html

Session 4:  高橋さん
http://www.microsoft.com/japan/msdn/events/briefing/webcast/session4.html

Session 5:  鈴木さん
http://www.microsoft.com/japan/msdn/events/briefing/webcast/session5.html

Session 6:  中原さん
http://www.microsoft.com/japan/msdn/events/briefing/webcast/session6.html

 

Posted by aonishi | 1 Comments
More Posts Next page »
 
Page view tracker