繁体   English   中英

如何在网络中的共享文件夹中播放媒体元素中的视频

[英]how play video in media element from shared folder in networking

我想从网络中的剪切文件中播放媒体元素中的视频。 怎么办呢?

例如我的本地IP是192.168.1.51,共享文件夹名称是'SharedFileVideo'。 我可以使用\\ 192.168.1.51 \\ SharedFileVideo \\ video.mp4从Windows资源管理器访问此文件,但是当我在Uri中使用\\ 192.168.1.51 \\ SharedFileVideo或file://192.168.1.51/SharedFileVideo/video.mp4作为元素媒体源时不播放我的视频。

如何从网络共享的文件中为uwp中的media元素绑定视频。

非常感谢

要在网络上的共享文件夹中播放视频文件,我们可以先获取StorageFile ,然后使用SetSource方法将源设置为文件。 要访问共享文件夹中的文件,我们需要在应用清单中声明一些功能。
在此处输入图片说明
通用命名约定(UNC)是Microsoft Windows中常用于访问共享网络文件夹的命名系统。 有关更多信息,请参见文件访问权限

所以我们可以像下面这样设置Package.appxmanifest

<Applications>
  <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="UWPApp.App">
    <uap:VisualElements DisplayName="UWPApp" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="UWPApp" BackgroundColor="transparent">
      <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png">
      </uap:DefaultTile>
      <uap:SplashScreen Image="Assets\SplashScreen.png" />
    </uap:VisualElements>
    <Extensions>
      <uap:Extension Category="windows.fileTypeAssociation">
        <uap:FileTypeAssociation Name="myvideotest">
          <uap:DisplayName>MyVideoTest</uap:DisplayName>
          <uap:SupportedFileTypes>
            <uap:FileType>.mp4</uap:FileType>
          </uap:SupportedFileTypes>
        </uap:FileTypeAssociation>
      </uap:Extension>
    </Extensions>
  </Application>
</Applications>
<Capabilities>
  <Capability Name="internetClient" />
  <Capability Name="privateNetworkClientServer" />
  <Capability Name="internetClientServer" />
  <uap:Capability Name="enterpriseAuthentication" />
</Capabilities>

然后在代码隐藏中,首先检索共享文件夹。

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(@"\\192.168.1.51\SharedFileVideo");

之后,我们可以检索视频文件并将其设置为MediaElement的源,例如:

StorageFile file = await folder.GetFileAsync("video.mp4");
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
MediaElement.SetSource(stream, file.ContentType);

您是否尝试将源设置为:

\\\\ 192.168.1.51 \\ SharedFileVideo \\ video.mp4

反斜杠(\\)而不是正斜杠(/),并确保以双反斜杠开头

我用我的树莓派做到这一点,它很好

\\\\树莓派\\薄膜\\ OS1 \\薄膜\\ video.mp4

不要忘记在xaml中执行此操作,您将需要以下内容:

<MediaElement Source="\\192.168.1.51\SharedFileVideo\video.mp4"/>

或用于绑定:

<MediaElement Source="{Binding Path=URI}"/>

并在代码中:

URI = @"\\192.168.1.51\SharedFileVideo\video.mp4";

正如我说的那样,这对我来说很好用,我不需要同步编程,并且我的机器和路由器看起来足够好,不会引起延迟或缓冲问题

要记住的另一件事是,如果将源绑定到字符串,那么有时媒体元素需要告知播放。 如果是这样,请不要忘记告诉它您已手动加载带有行为标记的视频。

所以xaml:

<MediaElement Name="VideoPlayer" Source="{Binding Path=URI}" LoadedBehaviour="Manual"/>

并在代码中添加:

URI = @"\\192.168.1.51\SharedFileVideo\video.mp4";
VideoPlayer.Play();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM