首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Xamarin平台(Windos、Android和IOS)中播放本地视频文件(.mp4)

如何在Xamarin平台(Windos、Android和IOS)中播放本地视频文件(.mp4)
EN

Stack Overflow用户
提问于 2018-09-26 15:31:35
回答 1查看 3.3K关注 0票数 0

在Xamarin平台上播放本地视频文件(TestMediaPlayer.Video.Demo_Video.mp4)时,我面临着这个问题。

我已经在Xamarin平台上创建了跨平台测试应用程序。我想播放本地mp4文件从设备视窗或安卓。当我播放来自web URL的视频样本时,效果很好。但是当我玩本地文件系统崩溃或不播放该文件。我已经为该视频文件设置了属性BuildAction = Embedded Resources。

如何在Xamarin平台上播放本地视频(mp4)文件

我的示例代码如下:

MainPage.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:TestMediaPlayer"   
             xmlns:forms="clr-namespace:Plugin.MediaManager.Forms;assembly=Plugin.MediaManager.Forms"  
             x:Class="TestMediaPlayer.MainPage">

    <StackLayout> 
        <forms:VideoView x:Name="VideoPlayer" HeightRequest="404"  WidthRequest="404"  />         
    </StackLayout>

</ContentPage>

文件MainPage.cs背后的代码:

代码语言:javascript
复制
using Plugin.MediaManager;
using Plugin.MediaManager.Abstractions;
using Plugin.MediaManager.Abstractions.Enums;
using Plugin.MediaManager.Abstractions.Implementations;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace TestMediaPlayer
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            testVideo();

            // CrossMediaManager.Current.Play("https://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4", MediaFileType.Video); // Online resources

        }

        private   async void testVideo()
        { 
            string fileFullName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalizedResources), "TestMediaPlayer/Video/Demo_Video.mp4");

            await CrossMediaManager.Current.Play(new MediaFile("file://" + fileFullName, MediaFileType.Video, ResourceAvailability.Local));
        }
     }
}

资源文件打印屏幕

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 15:54:01

MediaManager提供媒体文件的本地回放,因此不直接支持基于程序集的嵌入式资源。

因此,当使用基于file://的URL时,您需要向本地操作系统的文件系统提供一个URL。

因此,如果您必须使用嵌入式资源(我个人不建议使用),则需要将其从程序集复制到物理文件中。有许多SOs问题/答案显示了它是如何完成的,这里只有一个:

否则,您需要考虑使用基于iOS包的资源或基于Android /Raw的资源。

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

https://stackoverflow.com/questions/52521401

复制
相关文章

相似问题

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