视频未在iOS项目中播放

时间:2019-07-14 01:17:17

标签: xamarin xamarin.forms xamarin.ios media-manager

我在Xamarin.Forms应用程序中使用了Plugin.MediaManager。它可以在Android项目中完美运行,但在iOS项目中则不能。

我添加了

VideoViewRenderer.Init();

在AppDelegate中,这是视图中的代码:

    async void PlayStop_Clicked(object sender, System.EventArgs e)
    {
        if (this.BtnPlayStop.Text == "Start Video")
        {
            string video = Path.Combine(_videoPath, this.viewModel.Item.Video);

            if (File.Exists(video))
            {
                await CrossMediaManager.Current.Play(video, MediaFileType.Video);

                this.BtnPlayStop.Text = "Stop Video";
            }
        }
        else
        {
            await CrossMediaManager.Current.Stop();

            this.BtnPlayStop.Text = "Start Video";
        }
    }

如果代码进入第一个代码,则因为按钮将其文本更改为“停止视频”,但没有视频出现。该视频是本地mp4文件。

正如我所说的,这在Android上非常完美。

怎么了?

谢谢

Jaime

1 个答案:

答案 0 :(得分:0)

我已用此方法替换了播放或停止视频的方法:

    async void PlayStop_Clicked(object sender, System.EventArgs e)
    {
        if (this.BtnPlayStop.Text == "Iniciar Video")
        {
            string video = Path.Combine(_videoPath, this.viewModel.Item.Video);

            if (File.Exists(video))
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    _ = CrossMediaManager.Current.Play("file://" + video, MediaFileType.Video);
                });

                this.BtnPlayStop.Text = "Detener Video";
            }
        }
        else
        {
            await CrossMediaManager.Current.Stop();

            this.BtnPlayStop.Text = "Iniciar Video";
        }
    }

“ file://”部分在加载本地媒体文件时很重要。

通过这种方法,它可以在Android和iOS上使用。

问候 海梅

问候 海梅