Language: HTML | XAML

Schnellstart: Verwenden von „Wiedergeben auf“ in Anwendungen (XAML)

Applies to Windows only

Verwenden Sie "Wiedergeben auf", damit Benutzer auf einfache Weise Audiodaten, Videodaten oder Bilder von ihrem Computer auf Geräte in ihrem Heimnetzwerk streamen können. Dieses Thema zeigt, wie Sie "Wiedergeben auf" in einer Anwendung verwenden, um Benutzern das Streamen von Medien auf ein Zielgerät zu ermöglichen.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Informationen finden Sie unter:

Ziel: Streamen von Medien auf ein Zielgerät mithilfe von "Wiedergeben auf".

Voraussetzungen

Microsoft Visual Studio

Anweisungen

1. Erstellen eines neuen Projekts und Ermöglichen des Zugriffs auf Medienbibliotheken

  1. Öffnen Sie Visual Studio, und wählen Sie im Menü Datei die Option Neues Projekt aus. Wählen Sie im Abschnitt Visual C# oder Visual Basic die Option Anwendung aus. Geben Sie für die App den Namen PlayToSample ein, und klicken Sie auf OK.
  2. Öffnen Sie die Datei package.appxmanifest, und klicken Sie auf die Registerkarte Funktionen. Aktivieren Sie die Funktionen Musikbibliothek, Bildbibliothek und Videobibliothek, um der Anwendung den Zugriff auf die Medienbibliotheken eines Computers zu gewähren. Schließen und speichern Sie die Manifestdatei.

2. Hinzufügen der XAML-UI

  • Öffnen Sie die Datei MainPage.xaml, und fügen Sie dem standardmäßigen <Grid>-Element das folgende Markup hinzu.
    
            <Grid.RowDefinitions>
                <RowDefinition Height="40" />
                <RowDefinition Height="338" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Canvas x:Name="ButtonCanvas" Grid.Row="0">
                <Button x:Name="VideoButton" Click="VideoButtonClick" Content="Video" 
                        Margin="8,8,0,724" />
                <Button x:Name="AudioButton" Click="AudioButtonClick" Content="Audio" 
                        Margin="102,8,0,724" />
                <Button x:Name="ImageButton" Click="ImageButtonClick" Content="Image" 
                        Margin="196,8,0,724" />
            </Canvas>
            <Canvas x:Name="DisplayCanvas" Grid.Row="1" Height="338" VerticalAlignment="Top" 
                    HorizontalAlignment="Left" Width="600">
                <MediaElement x:Name="VideoPlayer" HorizontalAlignment="Left" Height="338" 
                              VerticalAlignment="Top" Width="600" />
                <MediaElement x:Name="AudioPlayer" HorizontalAlignment="Left" Height="338" 
                              VerticalAlignment="Top" Width="600" />
                <Image x:Name="ImagePlayer" HorizontalAlignment="Left" Height="338" 
                       VerticalAlignment="Top" Width="600" />
            </Canvas>
            <TextBlock x:Name="MessageBlock" Grid.Row="2" HorizontalAlignment="Left" 
                       Height="140" TextWrapping="Wrap" VerticalAlignment="Top" 
                       Width="600"/>
    
    
    

3. Hinzufügen von Initialisierungscode

Der Code in diesem Schritt erstellt die Ereignishandler für die Klickereignisse der Schaltflächen. Die ShowMedia-Funktion schaltet zwischen den Elementen um, die für Video, Audio und Bilder zu sehen sind. Die Funktion enthält auch einen Verweis auf das aktive Element. Dieser Verweis wird an PlayToManager übergeben, um die Quelle des Elements auf das Ziel für "Wiedergeben auf" zu streamen.

  • Öffnen Sie die Datei "MainPage.xaml.cs" oder "MainPage.xaml.vb", und fügen Sie der MainPage-Klasse den folgenden Code hinzu.
    
    // Save a reference to the current media element for PlayTo.
    private FrameworkElement mediaElement;
    
    private void ShowMedia(string mediaName)
    {
        VideoPlayer.Visibility = Visibility.Collapsed;
        VideoPlayer.Pause();
        AudioPlayer.Visibility = Visibility.Collapsed;
        AudioPlayer.Pause();
        ImagePlayer.Visibility = Visibility.Collapsed;
    
        FrameworkElement f = (FrameworkElement)DisplayCanvas.FindName(mediaName);
        f.Visibility = Visibility.Visible;
    
        switch (mediaName)
        {
            case "VideoPlayer":
                mediaElement = VideoPlayer;
                break;
            case "AudioPlayer":
                mediaElement = AudioPlayer;
                break;
            case "ImagePlayer":
                mediaElement = ImagePlayer;
                break;
        }
    }
    
    private void VideoButtonClick(object sender, RoutedEventArgs e)
    {
        ShowMedia("VideoPlayer");
        LoadVideo();
    }
    
    private void AudioButtonClick(object sender, RoutedEventArgs e)
    {
        ShowMedia("AudioPlayer");
        LoadAudio();
    }
    
    private void ImageButtonClick(object sender, RoutedEventArgs e)
    {
        ShowMedia("ImagePlayer");
        LoadImage();
    }
    
    
    

4. Hinzufügen von Code zum Abrufen der Medienquelle aus lokalen Medienbibliotheken

Der Code in diesem Schritt wird bei den Klickereignissen der Schaltflächen aufgerufen. Bei jeder Methode wird das erste Element, das in der ausgewählten Medienbibliothek gefunden wird, im zugehörigen Medien- oder Bildelement wiedergegeben oder angezeigt. Wenn Sie z. B. auf die Schaltfläche Video in der Anwendung klicken, ruft die LoadVideo-Funktion das erste Video aus dem Videoordner ab, legt es als Quelle für das <MediaElement>-Tag fest, das für das Video verwendet wird, und gibt das Video dann wieder.

  • Fügen Sie in der Datei MainPage.xaml.cs oder MainPage.xaml.vb den folgenden Code nach dem Code aus dem vorherigen Schritt hinzu.
    
    async private void LoadVideo()
    {
        try
        {
            IReadOnlyList<Windows.Storage.StorageFile> resultsLibrary =
                await Windows.Storage.KnownFolders.VideosLibrary.GetFilesAsync();
            MessageBlock.Text += "Play video: " + resultsLibrary[0].Name + "\n";
            Windows.Storage.Streams.IRandomAccessStream videoStream =
                await resultsLibrary[0].OpenAsync(Windows.Storage.FileAccessMode.Read);
            VideoPlayer.SetSource(videoStream, resultsLibrary[0].FileType);
            VideoPlayer.Play();
        }
        catch (Exception ex)
        {
            MessageBlock.Text += "Exception encountered: " + ex.Message + "\n";
        }
    }
    
    async private void LoadAudio()
    {
        try
        {
            IReadOnlyList<Windows.Storage.StorageFile> resultsLibrary =
                await Windows.Storage.KnownFolders.MusicLibrary.GetFilesAsync();
            MessageBlock.Text += "Play audio: " + resultsLibrary[0].Name + "\n";
            Windows.Storage.Streams.IRandomAccessStream audioStream =
                await resultsLibrary[0].OpenAsync(Windows.Storage.FileAccessMode.Read);
            AudioPlayer.SetSource(audioStream, resultsLibrary[0].FileType);
            AudioPlayer.Play();
        }
        catch (Exception ex)
        {
            MessageBlock.Text += "Exception encountered: " + ex.Message + "\n";
        }
    }
    
    async private void LoadImage()
    {
        try
        {
            IReadOnlyList<Windows.Storage.StorageFile> resultsLibrary =
                await Windows.Storage.KnownFolders.PicturesLibrary.GetFilesAsync();
            MessageBlock.Text += "Show image: " + resultsLibrary[0].Name + "\n";
            Windows.Storage.Streams.IRandomAccessStream imageStream =
                await resultsLibrary[0].OpenAsync(Windows.Storage.FileAccessMode.Read);
            Windows.UI.Xaml.Media.Imaging.BitmapImage imageBitmap =
                new Windows.UI.Xaml.Media.Imaging.BitmapImage();
            imageBitmap.SetSource(imageStream);
            ImagePlayer.Source = imageBitmap;
        }
        catch (Exception ex)
        {
            MessageBlock.Text += "Exception encountered: " + ex.Message + "\n";
        }
    }
    
    
    

5. Hinzufügen von Code für "Wiedergeben auf"

Mit dem Code in diesem Schritt können Sie "Wiedergeben auf" in Ihrer Anwendung aktivieren. Er ruft einen Verweis auf PlayToManager für die aktuelle Anwendung ab und weist den Ereignishandler für das SourceRequested-Ereignis zu. Sie übergeben im SourceRequested-Ereignishandler die PlayToSource-Eigenschaft des Medien- oder Bildelements an die SetSource-Methode von PlayToManager. Daraufhin streamt PlayToManager die Medien auf das vom Benutzer ausgewählte Ziel für "Wiedergeben auf".

  • Fügen Sie in der Datei MainPage.xaml.cs oder MainPage.xaml.vb den folgenden Code nach dem Code aus dem vorherigen Schritt hinzu.
    
    private Windows.Media.PlayTo.PlayToManager ptm;
    
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        ptm = Windows.Media.PlayTo.PlayToManager.GetForCurrentView();
        ptm.SourceRequested += SourceRequested;
    
        ShowMedia("VideoPlayer");
        LoadVideo();
    }
    
    private Windows.UI.Core.CoreDispatcher dispatcher = Window.Current.CoreWindow.Dispatcher;
    
    async private void SourceRequested(Windows.Media.PlayTo.PlayToManager sender,
                                 Windows.Media.PlayTo.PlayToSourceRequestedEventArgs e)
    {
    
        await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            try
            {
                Windows.Media.PlayTo.PlayToSourceRequest sr = e.SourceRequest;
                Windows.Media.PlayTo.PlayToSource controller = null;
                Windows.Media.PlayTo.PlayToSourceDeferral deferral =
                    e.SourceRequest.GetDeferral();
    
                try
                {
                    if (mediaElement is Image)
                    {
                        controller = ((Image)mediaElement).PlayToSource;
                    }
                    else
                    {
                        controller = ((MediaElement)mediaElement).PlayToSource;
                    }
    
                }
                catch (Exception ex)
                {
                    MessageBlock.Text += "Exception encountered: " + ex.Message + "\n";
                }
    
                sr.SetSource(controller);
                deferral.Complete();
            }
            catch (Exception ex)
            {
                MessageBlock.Text += "Exception encountered: " + ex.Message + "\n";
            }
        });
    }
    
    
    

6. Erstellen eines Wiedergabeziels (optional)

Zum Ausführen der Anwendung ist ein Zielgerät erforderlich, auf das Medien mit "Wiedergeben auf" gestreamt werden können. Falls Sie keinen zertifizierten Empfänger für "Wiedergeben auf" haben, nutzen Sie Windows Media Player als Zielgerät. Ihr Computer muss mit einem privaten Netzwerk verbunden sein, damit Sie Windows Media Player als Zielgerät verwenden können.

  1. Microsoft Windows Media Player
  2. Erweitern Sie das Menü Streamen, und aktivieren Sie die Option Remotesteuerung des Players zulassen.... Lassen Sie Windows Media Player geöffnet. Der Player muss ausgeführt werden, damit er als Ziel für "Wiedergeben auf" verfügbar ist.
  3. Öffnen Sie in der Systemsteuerung Geräte und Drucker. Klicken Sie auf Geräte und Drucker hinzufügen. Suchen Sie im Assistenten zum Hinzufügen von Geräten und Druckern im Fenster Gerät oder Drucker zum Hinzufügen zu diesem PC auswählen den Digital Media-Renderer für Ihren PC. Dies ist Windows Media Player für Ihren PC. Wählen Sie ihn aus, und klicken Sie auf Weiter. Beim Abschließen des Assistenten wird die Instanz von Windows Media Player in der Liste der Multimediageräte angezeigt.

7. Ausführen der App

  • Drücken Sie in Visual Studio F5 (Debuggen), um die Anwendung auszuführen. Sie können eine beliebige Medienschaltfläche auswählen, um das erste Medienelement in den verschiedenen Medienbibliotheken wiederzugeben oder anzuzeigen. Um die Medien während der Wiedergabe auf das Zielgerät zu streamen, öffnen Sie den Charm Geräte, und wählen Sie das Ziel für "Wiedergeben auf" aus.

Zusammenfassung

In dieser Schnellstartanleitung haben Sie einer Anwendung die Funktion "Wiedergeben auf" hinzugefügt, mit der Video- und Audioinhalte wiedergegeben und Bilder angezeigt werden. Mit der Funktion "Wiedergeben auf" können Benutzer Inhalt aus der App auf einen im Netzwerk verfügbaren Empfänger für "Wiedergeben auf" streamen.

Verwandte Themen

Streamen von Medien auf Geräte mit "Wiedergeben auf"
Beispiele
Beispiel für "Wiedergeben auf"
Beispiel für "PlayToReceiver"
Beispiel für Medienserver

 

 

Anzeigen:
© 2015 Microsoft