0

我在 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";
        }
    }

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

正如我所说,这在 Android 中非常有效。

怎么了?

谢谢

海梅

4

1 回答 1

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。

问候詹姆

问候詹姆

于 2019-07-15T13:22:55.077 回答