Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xamarin表单中调用媒体播放器_C#_Visual Studio_Xaml_Xamarin_Cross Platform - Fatal编程技术网

C# 如何在Xamarin表单中调用媒体播放器

C# 如何在Xamarin表单中调用媒体播放器,c#,visual-studio,xaml,xamarin,cross-platform,C#,Visual Studio,Xaml,Xamarin,Cross Platform,我有一个YouTube视频列表,我想在本机手机的媒体播放器上播放视频。我可以调用web浏览器和YouTube应用程序,但不能调用android/IOS手机的默认媒体播放器。这是在我的xamarin应用程序中实现媒体播放器的整个实现,该应用程序支持mvvm 首先,您需要将插件媒体管理器(or)添加到三个项目(便携式、Droid和iOS)中。为此,您需要右键单击项目,然后单击ManageNuGetPackages选项并浏览插件 Plugin.MediaManager Plugin.MediaMana

我有一个YouTube视频列表,我想在本机手机的媒体播放器上播放视频。我可以调用web浏览器和YouTube应用程序,但不能调用android/IOS手机的默认媒体播放器。

这是在我的xamarin应用程序中实现媒体播放器的整个实现,该应用程序支持mvvm

  • 首先,您需要将插件媒体管理器(or)添加到三个项目(便携式、Droid和iOS)中。为此,您需要右键单击项目,然后单击ManageNuGetPackages选项并浏览插件

    Plugin.MediaManager Plugin.MediaManager.Forms 安装这两个插件

  • 然后,您需要初始化VideoView,所以在onCreate中将此代码添加到Droid的主活动文件中

    创建时受保护的覆盖无效(捆绑包) { TabLayoutResource=Resource.Layout.Tabbar; ToolbarResource=Resource.Layout.Toolbar

        base.OnCreate(bundle);
    
        VideoViewRenderer.Init();
    
        global::Xamarin.Forms.Forms.Init(this, bundle);
    
        FileAccessHelper.CopyDatabaseIfNotExists("BizQuiz");
    
        LoadApplication(new App());
      }
    
  • 现在做一个这样的视图

    这是我的xaml文件:MediaPlayer.xaml

    <?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Add your class name here"
             xmlns:local="clr-namespace:MediaForms"
             xmlns:forms="clr-
       namespace:Plugin.MediaManager.Forms;assembly=Plugin.MediaManager.Forms"
             BackgroundColor="Aqua">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="4*"/>
            <RowDefinition Height="1*"/>
        </Grid.RowDefinitions>
        <forms:VideoView Grid.Row="0" Grid.RowSpan="1" 
        HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
                     Source="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" 
     AspectMode="AspectFill"/>
        <Grid HorizontalOptions="FillAndExpand" Grid.Row="1" Grid.RowSpan="1" 
     Margin="20">
            <Grid.RowDefinitions>
                <RowDefinition Height="1*"/>
                <RowDefinition Height="6*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <StackLayout Grid.Row="0" Grid.ColumnSpan="3" 
        Orientation="Vertical">
                <StackLayout Orientation="Horizontal">
                    <Label Text="Duration: "></Label>
                    <Label x:Name="Duration"/>
                </StackLayout>
                <ProgressBar x:Name="ProgressBar" Grid.ColumnSpan="3" 
        HorizontalOptions="FillAndExpand"></ProgressBar>
            </StackLayout>
    
            <Button Grid.Row="1" Grid.Column="0" TextColor="White" 
        BackgroundColor="Gray" HeightRequest="50" VerticalOptions="Center" 
        Text="Play" WidthRequest="100" Clicked="PlayClicked"></Button>
            <Button Grid.Row="1" Grid.Column="1" TextColor="White" Text="Pause" 
        BackgroundColor="Gray" HeightRequest="50" VerticalOptions="Center" 
         WidthRequest="100" Clicked="PauseClicked"></Button>
            <Button Grid.Row="1" Grid.Column="2" TextColor="White" Text="Stop" 
        BackgroundColor="Gray" HeightRequest="50" VerticalOptions="Center" 
          WidthRequest="100" Clicked="StopClicked"></Button>
        </Grid>
    
    </Grid>
    </ContentPage>`
    

    仅此而已,您可以像这样从URL播放视频。

    这为我节省了很多时间。为了使用VideoViewRenderer.Init(),我需要添加哪个程序集?这让我发疯了。有人提到您只需要从nuget manager添加Plugin.MediaManager Plugin.MediaManager.Forms插件。
    public partial class MediaPlayer : ContentPage
      {
         private IPlaybackController PlaybackController => 
       CrossMediaManager.Current.PlaybackController;
    
        public MediaPlayer()
        {
            InitializeComponent();
    
            CrossMediaManager.Current.PlayingChanged += (sender, e) =>
            {
                ProgressBar.Progress = e.Progress;
                Duration.Text = "" + e.Duration.TotalSeconds.ToString() + " 
         seconds";
            };
        }
    
        void PlayClicked(object sender, System.EventArgs e)
        {
            PlaybackController.Play();
        }
    
        void PauseClicked(object sender, System.EventArgs e)
        {
            PlaybackController.Pause();
        }
    
        void StopClicked(object sender, System.EventArgs e)
        {
            PlaybackController.Stop();
        }
      }