首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS工程中未播放视频

iOS工程中未播放视频
EN

Stack Overflow用户
提问于 2019-07-14 09:17:18
回答 1查看 126关注 0票数 0

我在我的Xamarin.Forms应用程序中使用了Plugin.MediaManager。它在Android项目中工作得很好,但在iOS项目中就不行了。

我已经添加了

代码语言:javascript
复制
VideoViewRenderer.Init();

在AppDelegate中,下面是视图中的代码:

代码语言:javascript
复制
    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,Stop按钮将其文本更改为“Stop video”,但没有显示视频。该视频是一个本地mp4文件。

正如我所说的,这在Android上工作得很好。

怎么了?

谢谢

詹姆

EN

回答 1

Stack Overflow用户

发布于 2019-07-15 21:22:55

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

代码语言:javascript
复制
    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://“部分在加载本地媒体文件时很重要。

通过这种方法,它可以在安卓和iOS上运行。

致敬詹姆

致敬詹姆

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57023902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档