零基礎學通Silverlight4(9):多媒體

Silverlight使用內建的影音功能來播放,不須要太多影音方面知識,也不須要考慮客戶端是否安裝Media PlayerQuick Time等軟件,因爲Silverlight的影音功能徹底是內置的,支持聲音和視頻的播放,目前支持的格式以下:
WMA :Windows Media Audio
MP3
WMV1:Windows Media Video 7
WMV2:Windows Media Video 8
WMV3:Windows Media Video 9
WMVA
WMVC1
MPEG-4
Silverlight在多媒體影音播放方面具有強大的功能,客戶端的計算機安裝Silverlight Runtime Component軟件,這是最基本的必要條件。
音頻和視頻功能是集成一個類MediaElement中,媒體元素(MediaElement)繼承自UIElent類,繼承了UI的通用屬性,開發人員可在視頻播放的基礎上再疊加額外的效果,主要關鍵屬性以下:
AutoPlay:獲取或設置是否自動播放Source屬性指定的媒體源,默認值爲true,表示自動播放。
Balance:獲取或設置左右音量平衡比例,屬性值爲-11之間的Double值,默認爲0,表示音量相等。
BufferingTime:獲取或設置緩衝時間,默認值爲5s
BufferingProgress:獲取當前的緩衝進度。
IsMuted:獲取或設置媒體源。
Stretch:獲取或設置媒體的伸展模式。
Volume:獲取或設置播放音量。
下面的文檔用於自動下載並播放MP3音頻:
      <MediaElement x:Name="MyAudio" AutoPlay="True" Volume="1" Source="tt.mp3"  Canvas.Left="59" Canvas.Top="102"/>
 

範例 示範使用攝像頭

    圖9-1是項目啓動時畫面。
                 
 9-1
單擊「啓動」時,會提示是否容許應用程序訪問你的本機視頻設備,如圖9-2
            9-2
選擇「是」後,開始視頻捕獲,單擊「截屏」下方會出現相應的載圖,如圖9-3
                          9-3
     主要XAML標記以下:
<Grid x:Name="LayoutRoot" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="189*" />
            <RowDefinition Height="36*" />
            <RowDefinition Height="75*" />
        </Grid.RowDefinitions>
    <Border x:Name="bordVider" Margin="3" CornerRadius="3" Width="400" BorderBrush="Gray"  HorizontalAlignment="Left"  BorderThickness="1" >
            <Border.Background>
                <VideoBrush x:Name="brshMyVideo"/>
            </Border.Background>          
        </Border>
        <Button Name="btStart" HorizontalAlignment="Left" VerticalAlignment="Top"   Grid.Row="1"
               Width="78" Height="33" 
     Content="啓動" FontSize="14" Click="btStart_Click" Margin="12,0,0,0" />
        <Button Content="關閉"  Height="33" HorizontalAlignment="Left" Margin="107,0,0,0" Name="btStop" VerticalAlignment="Top" Width="78" Grid.Row="1" FontSize="14" Click="btStop_Click" />
        <Button Content="截屏" Height="33" HorizontalAlignment="Left" Margin="196,0,0,0" Name="btPing" VerticalAlignment="Top" Width="78" Grid.Row="1" FontSize="14" Click="btPing_Click" />
        <Image Grid.Row="2" Height="70" HorizontalAlignment="Left" Margin="20,5,0,0" Name="imgMy" Stretch="UniformToFill"  VerticalAlignment="Top" Width="99" />
    </Grid>
</UserControl>
主要代碼以下:
void btStart_Click(object sender, RoutedEventArgs e)
           { 
//取得默認視頻設備
VideoCaptureDevice video = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
 //建立視頻捕獲源           
  capSource = new CaptureSource();
             if (CaptureDeviceConfiguration.RequestDeviceAccess())
              {
//設置視頻設備
                  capSource.VideoCaptureDevice = video;
                  brshMyVideo.SetSource(capSource);
                 brshMyVideo.Stretch = Stretch.Fill;
//啓動攝像頭
                 capSource.Start();
              }
          }
private void btStop_Click(object sender, RoutedEventArgs e)
           {
//關閉攝像頭
               capSource.Stop();
           }
           private void btPing_Click(object sender, RoutedEventArgs e)
           {
               if (capSource.State == CaptureState.Started)
               {
WriteableBitmap wBitmap = new WriteableBitmap(bordVider, new MatrixTransform());
                   imgMy.Source = wBitmap;
               }
      }
   
 
更詳細內容及源代碼下載:
http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1287058088&asin=B0043RT7I2&sr=8-1
相關文章
相關標籤/搜索