代码之家  ›  专栏  ›  技术社区  ›  aman

如何在UWP应用程序中从单独的URL播放视频和音频?

  •  1
  • aman  · 技术社区  · 6 年前

    我正在为UWP桌面应用程序创建一个视频播放器。我无法播放来自不同网址的视频和音频。我已经给出了下面的代码,但还没有给出音频和视频的网址。我用的是 Xampp 我的案件的本地服务器。请帮帮我。

    我的 MainPage.xaml.cs :

    namespace my_video_player
    {
        public sealed partial class MainPage : Page
        {
            MediaPlayer video_player;
            MediaSource mediaSource_video;
            MediaSource mediaSource_audio;
    
            public MainPage()
            {
                this.InitializeComponent();
                video_player = new MediaPlayer();
    
                Uri video_uri = new Uri("THE-URL-OF-THE-VIDEO");
                Uri audio_uri = new Uri("THE-URL-OF-THE-AUDIO");
                mediaSource_video = MediaSource.CreateFromUri(video_uri);
                mediaSource_audio = MediaSource.CreateFromUri(audio_uri);
                video_player.Source = mediaSource_video;
                video_player.Source = mediaSource_audio;
                video_player_screen.SetMediaPlayer(video_player);
            }
        }
    }
    

    我的 MainPage.xaml :

    <Page
        x:Class="my_video_player.MainPage"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:my_video_player"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    
        <Grid HorizontalAlignment="Center" VerticalAlignment="Top" Height="710" Width="1260" Margin="0,10,0,0">
            <MediaPlayerElement 
                x:Name="video_player_screen" 
                HorizontalAlignment="Left" 
                VerticalAlignment="Center"
                AreTransportControlsEnabled="True">
            </MediaPlayerElement>
        </Grid>
    </Page>
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   Nico Zhu    6 年前

    如何组合两个源并在媒体播放器上播放它们?

    从语法的角度来看, Source 属性只能设置一次且最后一次有效。所以你的媒体只能播放来自 mediaSource_audio . 根据你的要求,你可以做两个 MediaPlayer 和使用 MediaTimelineController 在多个播放机之间同步内容。

    mediaPlayer = new MediaPlayer();
    mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/example_video.mkv"));
    _mediaPlayerElement.SetMediaPlayer(mediaPlayer);
    
    
    _mediaPlayer2 = new MediaPlayer();
    _mediaPlayer2.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/example_video_2.mkv"));
    _mediaPlayerElement2.SetMediaPlayer(_mediaPlayer2);
    
    _mediaTimelineController = new MediaTimelineController();
    
    mediaPlayer.CommandManager.IsEnabled = false;
    mediaPlayer.TimelineController = _mediaTimelineController;
    
    _mediaPlayer2.CommandManager.IsEnabled = false;
    _mediaPlayer2.TimelineController = _mediaTimelineController;
    

    用法

    private void PlayButton_Click(object sender, RoutedEventArgs e)
    {
        _mediaTimelineController.Start();
    }
    

    有关更多信息,请参考此 document .