2012年5月31日 星期四

使用HTML5 撥放Video

若要利用 HTML5 video 標籤來撥放Video,你可以在video標籤中加上source項目,例如底下設定撥放四種不同格式的檔案

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <video width="320" height="240" controls="controls">
        <source src="video/movie.mp4" type="video/mp4" />
        <source src="video/movie.webm" type="video/webm" />
        <source src="video/movie.ogv" type="video/ogg" />
        <source src="video/movie.ogg" type="audio/ogg" />
        你的瀏覽器不支援 video 標籤
    </video>
</body>
</html>


不過當你把程式放到IIS 7.5上時,Web Server不懂得這些影片的MIME Type,因此可能無法正確的撥放影片。這時只要開啟IIS管理工具,在Default Web Site設MIME TYPE :

image

部分的MIME Type與其Extension的對應,可以參考這個網站  MIME Types and File Extensions

新增一個MIME Type,如.mp4對應到 video/mp4

image

 

底下的MIME Type也是根據上步驟新增的,懶得重做一次來抓圖,把設好的直接貼上來。

image

 

image

 

image

底下是使用Firefox, chrome與ie瀏覽器,以筆者機器來測試不同格式檔案的結果,有列出來的表示影片正常顯示。

  • mp4
        chrome 19.0.1084.52 m
        ie9
  • webm
        chrome 19.0.1084.52 m
        Firefox12
  • ogv
        Firefox12
        chrome 19.0.1084.52 m
  • ogg
        Firefox12
        chrome 19.0.1084.52 m

2012年5月15日 星期二

Visual Basic 11 新功能-方法多載


在Visual Studio 2010 撰寫Visual Basic 10程式時,若定義多載方法時,函式簽名只有差在一個Optional 參數;

Module Module1
    Sub Main()
        Console.WriteLine(Add(10))
        Console.WriteLine(Add(10, 20))
    End Sub
    Private Function Add(i As Integer) As Integer
        Return i
    End Function
    Private Function Add(i As Integer, Optional j As Integer = 0) As Integer
        Return i + j
    End Function
End Module

則編譯程式時,會出現錯誤
image
而在Visual Studio 11 Beta中 (Visual Basic 11),已經沒有這個限制了,當然程式也可以正常執行:
image

.NET 4.5 & .NET 4 並行安裝?

一直以為.NET Framework 4.5和.NET Framework 4 可以像以前的版本一樣,並行安裝在同一台電腦。不過最近在測試幾個WCF的程式,卻發現,使用Visual Studio 2010開發出的WCF程式,怎麼行為和以前不太一樣啊。而且在Visual Studio 2010之中,也可以設定一些WCF 4.5的新特性。
google了一下,看到了這篇文章 .NET 4.5 and .NET 4 Won't Coexist,釐清我的懷疑。兩者果然不是side-by-side安裝啊…
Orz…
目前裝來測試的VS與.NET版本
image

在執行時期判斷是否安裝.NET Framework 4.5

若要在runtime判斷是否安裝.NET Framework 4.5,可以參考此篇How to detect at runtime that .NET version 4.5 currently running your code? 文章的討論串,利用以下程式判斷

public static bool IsNet45OrNewer()   { 
          // Class "ReflectionContext" exists from .NET 4.5 onwards.      
          return Type.GetType("System.Reflection.ReflectionContext", false) != null;  
      }

不過,也有人認為使用偵測功能來決定版本的動作不是很好,目前且湊合著用吧! 也許未來正式版發行時,還會有別的解法也不一定。

MSDN 關於.NET Framework 版本的文件說明

 http://msdn.microsoft.com/en-us/library/bb822049(v=vs.110).aspx

.NET  Framework 4.5程式參考的組件所在位置 (Windows 7)
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework

2012年5月14日 星期一

Portable Class Library(Visual Studio 11)


開發工具 : Visual Studio 11 Beta
作業系統 : Windows 7 Ultimate
Visual Studio 11 Beta內建了 Portable Class Library類型的專案,可以讓你建立類別庫,適用於多種不同類型的.NET Framework,如Windows Phone 7.5、.NET Framework 4.5等等,而不用重新編譯你的程式碼。
若在Visual Studio  2010 (sp1) 工具想要使用這個功能,可以下載並安裝Portable Library Tools
在Visual Studio 11 Beta之中,可以建立Portable Class Library類型的專案:
image
專案會自動參考.NET Portable Subset:
image
若要修改Target Framework,可以在專案的屬性頁,選取Change
image
就可以選擇想要使用的Framework
image

總網頁瀏覽量