3.1.4 Silverlight

11/20 

Silverlight在微軟網站的主要說明是:「一個專為網頁設計的,可以跨瀏覽器、跨平台的外掛互動應用程式。它提供了彈性且方便的程式設計模組用以支援AJAX、VB、C#、Python及Ruby等技術,他同時也整合與相容目前所有的網頁技術。在不同平台間,如Mac OS或微軟IE瀏覽器等、提供快速、具經濟效益的高畫質影像訊號的傳輸與播放。」光看這些介紹可能還是會覺得有些抽象,所以我在查了一下資料後,等理了一些比較具體的優缺點及特色。

Silverlight的優點:
1.較高的保密性:
在Silverlight元件按下滑鼠右鍵的結果,會發現已經被完整的封裝起來了,看不到任何的程式碼,對於內容提供者與程式設計人員提供了較大的保障。

2.媒體播放器更多樣化的展現能力:
過去想要製作一個簡單的特效,必須使用非線性軟體剪輯並重新運算輸出,不但浪費了大量的轉檔時間,畫質也相對的劣化。在同一畫面要放置不同的多媒體,網頁呼叫後的結果也往往不如預期。Silverlight媒體播放器可以不需要使用非線性剪輯軟體,直接製作各式各樣的2D、3D特效。兩個畫面間更可以直接製作key的合成,而且畫面從頭到尾都不需經過重新運算及輸出。且了方便不會程式設計的人士製作影像特效,還特別提供一個免費的製作工具_Expression Blend,之後會再作介紹。

3.控制元件運用更彈性:
Silverlight影音播放器之前可以放置任何Silverlight控制元件(TextBox,ListBox,Slider,PupUp...),這些可與影像重疊的控制項,不但擁有豐富的互動功能,還可以讓使用者任意拖拉到想要的位置或隱藏。

Silverlight的缺點:
只能播放WMV檔:不像Media Player可以播放各種壓縮格式的影音檔案,雖然一樣有DirectX支援,但卻只能播放WMV檔。在播放格式支援這方面的彈性就小了很多。

Silverlight 1.0和2.0版的差別:
與其它軟體的不同,Silverlight2.0並非1.0的升級版。1.0主要是以XAML加上javascript為主要開發工具,而2.0則還有支援.NET後端物件導向程式,如C#.NET、VB.NET。它可以在ASP.NET網頁上直接加入元件,也可以和ASP.NET網頁元件互通訊息。我自己就是在開發ASP.NET網頁時有稍微的接觸到這項技術。

之後會介紹以.NET方式所開發之Silverlight的概念與方式,以及其他開發工具。

 

12/8

以.NET方式開發的Silverlight
之前提到Sliverlight2.0是以NET架構開發,除了使用的是較嚴謹的強型別純物件導向程式外,在同一網頁上Silverlight元件還可以與既有使用率非常高的ASP.NET網頁元件直接串聯與互動。
概念與架構如下:

1.視覺呈現XAML(Extensible Application Markup Language):
XAML本質上屬於一種.NET Programming Language,與HTML類似,特點是用來描述使用者介面。XAML可以定義2D 和 3D 物件、旋轉(rotations)、動畫(animations),以及各式各樣的效果。
而對於非常複雜的視覺呈現或是注重細節的人,簡單的描述不足以表達出複雜的視覺影像時,就必須藉由熟悉的繪圖軟體繪製出細節豐富的圖形,由工具軟體自動輸出相對應的XAML程式碼。

2.後端控制程式--事件(Events):
Silverlight後端程式的撰寫最重要的就是一大堆"事件"的組合,像ASP.NET最常使用的是按鍵"按下"事件,以及藉由委派(Delegate)產生出一連串對等的事件觸發等,而Slightlight強調的是大量的互動功能,因此包含滑鼠右鍵、滾輪、每一個鍵盤按鍵的"按下"都可以藉由Silverlight觸發不同的事件。視訊媒體本身與Silverlight的緊密結合後,包含影音播完、開始播映的許許多多的狀態也都可以產生事件。

3.Java Script
JavaScript是一種物件導向的腳本語言,其程式碼在client端執行之前不需經過編譯,而是將文字格式的字元代碼發送給瀏覽器由瀏覽器解釋執行。不同於伺服器端腳本語言,例如PHP與ASP,JavaScript是用戶端腳本語言,也就是說JavaScript是在用戶的瀏覽器上運行,不需要伺服器的支援而可以獨立運行。JavaScript對於開發大型系統及效能上,雖然無法與其他嚴謹的程式語言相比,但是它強大的相容及普及性,幾乎是無人可比。

12/15
Silverlight的開發工具

‧Visual Studio 2008
Silverlight程式的開發和其他的視窗或網頁程式一樣,以Visual Studio.Net為主體。它主要是後端程式的開發,且擁有強大的整合除錯環境,除了可以即時偵錯,還可以在撰寫的同時提供即時提示,使得開發效率大幅增加。不過雖然VS2008 Silverlight專案提供了圖形開發介面,可以拖拉基礎元件,但對於動態及特效必須借助其他工具完成。

‧Expression Blend
是Sliverlight提供的最主要的視覺開發工具,可依照我們所熟悉的圖形設計及2D、3D的轉場特效,由視覺設計直接轉換成XAML標籤,對於不擅程式設計的人,能更有隨心所欲發揮的空間。
在Expression Blend工具中,可以從頭到尾不需任何程式的輸入,直接以圖形製作產生。如果需要快速修正,也可以直接輸入XAML標籤,圖形介面也會跟著轉換。另外在時間軸的設定、特效參數的設定欄位等等,都與一般非線性剪接軟體的介面類似。
下圖就是Expression Blend的操作介面,中央顯示的就是圖形介面以及相對應的XAML標籤。

Expression Blend

‧Visual Studio 2008 + Expression Blend
Visual Studio 2008和Expression Blend兩個獨立的應用程式,將修改後的時間軸無間隙的傳送給對方同步修改,程式開發人員使用Visual Studio,視覺設計人員使用Expression Blend,任何一方只要按下接受按鈕,最新的更新便會在自己的這一方呈現出來,對於開發設計來說非常方便。
下圖可以看到可從Expression Blend直接開啟Visaul Studio。

‧Expression Encoder
視訊轉檔之用。輸入檔案格式包含:Microsoft AVI,MPEG1,2,WMV,ASF,DVD光碟檔VOD,AVS,TS,DRV-MS,M4V,3GP,MP3,WAV,AIFF,BWF等,轉檔輸出格式只限定Silverlight可使用的唯一格式WMV檔。
Expression Encoder與其他的轉檔程式最大的不同在於,它可以直接輸出一個完整的Silverlight網頁播放專案,不過這樣的輸出並不會包含設計過的互動功能。
下圖為Expression Encoder的操作介面,右邊可以設定轉檔後要輸出的播放器樣式、縮圖等等。
encoder

‧Expression Studio 2
將過去1.1版本時原本各自獨立的所有Silverlight相關的輔助開發工具集合成為Expression Studio:
a.Expression Design:提供類似Adobe Illustrator的向量圖檔設計工具,可以直接輸出成XAML檔案,供Silver light使用。
b.Expression Media:媒體的儲存與分類工具,類似Adobe Bright 軟體,在日漸增加的多媒體檔案,建立較完整的規劃。
c.Expression Web:對於想以HTML網頁為主要設計環境的開發者,Expression Web提供了比Visual Studio Express Edition更簡易的版本 ,是以視覺設計為主要訴求的網頁開發工具,可以直接拖拉產生Silverlight外掛。

參考資料:『銀光』乍現:談微軟Silverlight多媒體互動技術 李振中◎著

 

12/22

Silverlight 的中文版MSDN
本文件庫章節內容

適用於 Silverlight 的 .NET Framework 類別庫


1/5

Silverlight 2的應用實例
‧自我調整流媒體傳輸(adaptive streaming)功能
Silverlight 2的最大優勢就是可以以任何媒體平臺上最低的TCO(總體擁有成本)來提供網路上最高品質的視訊。

"自我調整流媒體傳輸(adaptive streaming)"功能,允許視訊可以多個位元速率(譬如400Kbits, 800Kbits, 1.5Mbits, 2Mbits)發送,由Silverlight根據網路頻寬和用戶端CPU性能動態地選擇最優的  位元速率(還可以在之後條件改變的情形下無縫地自動轉換位元速率)。

現在,IIS 7也提供了"自我調整流媒體傳輸"功能的支援,IIS Smooth Streaming(IIS平滑流傳輸)將提供一個集成的方式來在網上發送HD品質的適應性視訊。http://www.smoothhd.com/這個網站中有使用Silverlight 2和 IIS平滑流傳輸相輔而成的實例,自我調整性流輸出率可達2.5Mbits。

NBC奧林匹克網站今年夏天使用Silverlight 2服務了超過6千萬個線上瀏覽者,提供了多於3500小時的奧林匹克賽況直播。該網站瀏覽者每人平均觀看了27分鐘的錄影,對線上視訊來說,這是個高得出奇的數字。該網站使用了新的Silverlight自我調整流媒體傳輸功能來支持1.5Mbit位元速率,幫助提供了精彩無比的視訊體驗。

除了在美國驅動奧林匹克體驗外,Silverlight還在法國(FranceTV),荷蘭(NOS), 俄羅斯 (Sportbox.ru)和義大利(RAI)等地用來播放奧林匹克賽況。這些媒體決定使用Silverlight後面的一個很大的原因是Silverlight提供的TCO和流媒體傳輸費用的差異。在《Web Designer Magazine》(Web設計師雜誌-荷蘭的)的2008年8月版中, NOS的代表報告說,他們使用了Silverlight和40台 Windows Media伺服器就能夠服務10萬個同時使用者,而要是使用Flash Media伺服器的話,這需要270台伺服器才行。

參考文章: http://flash-silverlight.blogspot.com/2008/12/silverlight-2-silverlight-3.html#links