0

Windows Media 서비스와 함께 Windows Server 2008 R2를 사용하고 있습니다. 클라이언트 측에서는 Silverlight를 사용하여 미디어 파일을 재생하려고합니다. VSTS 2008 + Silverlight 3 + ASP.Net + .Net 3.5를 사용 중입니다. 실버 라이트가 Windows Media Service에서 스트리밍 파일을 재생할 수 있는지 여부를 알고 싶습니다. 그렇다면 신속한 테스트를 수행 할 수있는 코드 샘플이 있습니까?실버 라이트는 mms를 통해 스트리밍을 지원합니까?

답변

0

Silverlight의 MediaElement는 mms를 통한 스트리밍을 지원합니다. Silverlight 용 MSDN audio and video overview을 살펴 봐야합니다. 여기

는 MediaElement를 제어 및 미디어 상태/버퍼링 상태를 표시 할 수 매우 기본 실버 앱이다

XAML

<UserControl x:Class="StreamingTest.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:DesignWidth="640" d:DesignHeight="480"> 
    <Grid x:Name="LayoutRoot"> 
     <StackPanel Orientation="Vertical"> 
      <MediaElement x:Name="MediaElement" Width="640" Height="480" Source="mms://danarec:8080"/> 
      <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> 
       <TextBlock x:Name="Status" Margin="0,5"/> 
       <TextBlock x:Name="Buffer" Margin="10,5"/> 
      </StackPanel> 
      <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> 
       <Button x:Name="Play" Content="Play" Click="Play_Click"/> 
       <Button x:Name="Pause" Content="Pause" Click="Pause_Click"/> 
       <Button x:Name="Stop" Content="Stop" Click="Stop_Click"/> 
      </StackPanel> 
     </StackPanel> 
    </Grid> 
</UserControl> 

을 C#

public partial class MainPage : UserControl 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 

     this.MediaElement.CurrentStateChanged += (sender, e) => 
     { 
      this.Status.Text = this.MediaElement.CurrentState.ToString(); 
      this.Buffer.Visibility = this.MediaElement.CurrentState == MediaElementState.Buffering ? Visibility.Visible : Visibility.Collapsed; 
     }; 

     this.MediaElement.BufferingProgressChanged += (sender, e) => 
     { 
      this.Buffer.Text = string.Format("{0:0.0} %", this.MediaElement.BufferingProgress * 100); 
     }; 
    } 

    private void Play_Click(object sender, RoutedEventArgs e) 
    { 
     this.MediaElement.Play(); 
    } 

    private void Pause_Click(object sender, RoutedEventArgs e) 
    { 
     this.MediaElement.Pause(); 
    } 

    private void Stop_Click(object sender, RoutedEventArgs e) 
    { 
     this.MediaElement.Stop(); 
    } 
} 
관련 문제