簡體   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