如何在 Windows phone silverlight 应用程序上从 C# 填充视频

Posted

技术标签:

【中文标题】如何在 Windows phone silverlight 应用程序上从 C# 填充视频【英文标题】:How to populate videos from C# on windows phone silverlight app 【发布时间】:2013-12-21 22:11:52 【问题描述】:

我正在创建一个 Windows Phone 测验应用程序。它还将短视频显示为用户回答的问题。我已经能够使用此代码显示本地目录中的视频。但是如果我必须在本地包含太多视频,我的应用程序包文件会变得如此之大。所以我决定在用户​​需要时尝试从互联网加载。 这是我的 XAML 代码:

 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <Grid HorizontalAlignment="Left" Height="186" Margin="10,132,0,0" VerticalAlignment="Top" Width="436">
            <Core:SMFPlayer PositionLiveBuffer="0:0:9" EstimatedLiveDuration="0:0:30" VolumeLevel="0.9">
                <Core:SMFPlayer.SelectedAudiostream>
                    <Media:StreamMetadata/>
                </Core:SMFPlayer.SelectedAudioStream>
                <Core:SMFPlayer.Playlist>
                    <Media:PlaylistItem x:Name="media" DeliveryMethod="ProgressiveDownload" MediaSource="Assets/Kedike.wmv" MediaType="Entertainment" Title="song" FileSize="2413589" FrameRate="1045" VideoHeight="268" VideoWidth="512" Description=" vodeo" JumpToLive="True"/>
                </Core:SMFPlayer.Playlist>
            </Core:SMFPlayer>
        </Grid>
    </Grid>

当视频从本地源(即 /videos/kedike.wmv)加载时,此代码有效。我在网上看到了这段代码,它实际上可以得到一个视频:

mediasource = "http://ecn.channel9.msdn.com/o9/content/smf/smoothcontent/bbbwp7/big buck bunny.ism/manifest"

但要从网络上执行此操作,DeliveryMehod 属性设置为 ="AdaptiveStreaming" 我想知道那是什么文件类型,我尝试用 youtube 视频链接和 facebook 视频链接替换源。这些都不起作用。 我需要帮助来做这件事。 然后我想以编程方式更改媒体源。即通过 xaml.cs 文件。我想声明

media.MediaSource = new Uri("http://....", UriKind=Relative);

不知道这是否可行。 我尝试这样做,因为我已经能够在本地加载视频,但我收到错误,我没有初始化或创建媒体元素的新实例(不是 windows phone xna 媒体) 我在尝试更改其他一些东西时遇到了一些其他错误。 我的 C# 代码是:

 private void secondvideo()
    

        media.MediaSource = new Uri("Videos/kedike2.wmv", UriKind.Relative);
    

我想使用此代码播放第二个视频,但出现错误。这是我获取代码的链接。code link

【问题讨论】:

我以前从未使用过 SMFPlayer,但看到它的在线文档 AdaptiveStreaming 仅用于流畅的流式传输。对于常见的视频流,您不必从 ProgressiveDownload 更改它。 而且“http://....”是一个绝对的 uri 而不是相对的。 【参考方案1】:

由于其限制,您不能只在 MMPPF 中使用任何类型的链接。您需要拥有视频的确切 URL。

Youtube 视频的 URL(确切的)通常太大。如果您真的想在 MMPPF 中加载 youtube 视频(尽管我认为在您自己的媒体播放器中使用 Youtube 视频是不合法的),请使用 this,它可以通过 NuGet 获得。

您可以使用此工具包获取确切的 youtube 视频 URL 并在您自己的播放器中使用它。

【讨论】:

以上是关于如何在 Windows phone silverlight 应用程序上从 C# 填充视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Phone 8.1 / Windows 10 上创建自定义 VirtualizingPanel?

如何发送推送通知 windows phone 8 应用程序?

如何从Windows Phone获取字体文件

如何在 Windows Phone 8 中导航页面

如何在 Windows Phone App 中浏览和上传文件

如何在 windows phone 8.1 中检查文件夹是不是为空