[Silverlight] 第一次用Silverlight寫廣播程式就上手

2010/10/26

這東西不難..
但是可以寫出很有用的東西…

首先介紹版面配置…
sshot-102


XMAL Code:

<UserControl x:Class="SLRadio.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <MediaElement Height="56" HorizontalAlignment="Left"  Margin="122,57,0,0"  Name="mediaElement1" VerticalAlignment="Top" Width="160"  />
        <Button Content="停止" Height="23" HorizontalAlignment="Left" Margin="122,143,0,0" Name="btnStop" VerticalAlignment="Top" Width="75" Click="btnStop_Click" />
        <Button Content="播放" Height="23" HorizontalAlignment="Left" Margin="207,143,0,0" Name="btnPlay" VerticalAlignment="Top" Width="75" Click="btnPlay_Click" />
    </Grid>
</UserControl>

其中比較特別的是我放入一個 MediaElement 的元件..

現在來看C# code 播放跟停止

private void btnStop_Click(object sender, RoutedEventArgs e)
{
    this.mediaElement1.Stop(); 
}

private void btnPlay_Click(object sender, RoutedEventArgs e)
{
    this.mediaElement1.Source = new Uri(@"mms://bcr.media.hinet.net/RA000018",UriKind.Absolute);
    this.mediaElement1.Play();

}



很簡單的插入.. mms://bcr.media.hinet.net/RA000018

這是來自於hinet  台北愛樂電台的位置…
是怎麼找到這網址的..

我是到這 Hinet-廣播-台北愛樂 然後檢視原始碼

sshot-103

所以瞜..很簡單..非常容易上手…

如果整理一下..可以寫出自已喜歡的電台播放器..配合Silverlight 得絢麗特效…


ps.  其中MSDN 說到 MediaElement.Source 屬性,有一些需要注意的話喔..

允許使用跨網域 URI (透過 http)。您也可以在 URI 中使用 Moniker mms:、rtsp: 或 rtspt: 指向媒體來源。在每個案例中,
實際的通訊協定和 URI 配置會變回 http (可能帶有區分資料流與漸進式下載的進一步行為後援),但Source 的值將保留您的 Moniker 而不論 URI 的執行階段解析為何。
藉由使用 SetSource 方法,而不是直接設定 Source,您可以將內容當做封裝 (Package) 來下載,並從封裝內存取組件。如需將資源 (如媒體) 當做資料流下載,並能夠存取封裝組件的詳細資料,請參閱視需要下載內容
您可以在 XAML MediaElement 物件項目中將初始的 Source 值指定為 "" (空字串),之後再用程式碼設定該值。這樣會建立非播放的預留位置 MediaElement,供您之後設定特定的 Source 來回應使用者選擇。
如果 XAML 中的初始 Source 屬性值並未指定有效來源,就會發生 MediaFailed 事件。
為 Source 設定跨網域的統一資源識別元 (URI) 不是會成功,就是不會對任何失敗傳回有效狀態。在這種情況下,並不會發生 MediaFailed 事件,
Source URI 中不允許反斜線 (\),請務必使用正斜線 (/)。

讚一下:


檔案下載:


案例:


0 意見:

程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.