C# Silverlight 5动态流URI设置

C# Silverlight 5动态流URI设置,c#,silverlight,C#,Silverlight,我对Silverlight(5)不熟悉,但我认为我已经接近实现我的目标了。谢谢你的帮助 基本上,我需要将动态生成的平滑流URI传递到播放器中,并正确设置“媒体源” 我正在采取的步骤 客户端调用,单个键值对 <param name="InitParams" value="mediaurl=http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest" /> Visua

我对Silverlight(5)不熟悉,但我认为我已经接近实现我的目标了。谢谢你的帮助

基本上,我需要将动态生成的平滑流URI传递到播放器中,并正确设置“媒体源”

我正在采取的步骤

客户端调用,单个键值对

<param name="InitParams" value="mediaurl=http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest" />
VisualStudio2015编译器不会抱怨
MainPage.xaml.cs
,但它不起作用。
Silverlight播放器可以很好地播放静态URI,但不能播放传入
InitParam

的URI。您可以说,像这样手动设置url是可行的

<Media:PlaylistItem DeliveryMethod="AdaptiveStreaming" MediaSource="http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest" />
我发给你的链接中的另一个例子就是这样做的

MainPage.xaml中

<Grid x:Name="LayoutRoot" Background="White" 
   xmlns:smf="http://schemas.microsoft.com/smf/2010/xaml/player">
    <smf:SMFPlayer HorizontalAlignment="Stretch" Margin="0" 
         x:Name="sMFPlayer" VerticalAlignment="Stretch" />
</Grid> 

希望这不是一个愚蠢的问题。您测试的静态和传入的initparam值相同?与静态和传入initparam的URI相同。由于URI字符串设置为OK,我的代码在MainPage.xaml.cs中因某种原因中断。只是尝试将MediaSource MainPage.xaml绑定到URI字符串。它是否会给出错误消息?您好,没有生成错误(XAP和测试页生成都很好)。在VS中运行项目时,浏览器中出现错误(找不到“mediaurl”键)。解决方法是使用initParamURI编辑测试页面,因为我不确定如何在IDE中生成IniParams。我想知道我是否正确地分配了InitParam URI,以便通过创建mPlayer实例将其绑定到媒体源属性。,。查看本教程@Nikoski,我可能会将其移动到一个新线程。我尝试了这两种方法,现在只能播放音频而不能播放视频,因为我可以播放XAML中静态分配的平滑流。关于如何将动态平滑流URI传递给Silverlight player,最初的问题已经得到了回答,感谢您的建议。为什么我在Silverlight 5中看不到来自多个平滑流媒体源的视频,也看不到播放机控制是否正常工作,但在Fiddler中听到音频并看到视频和音频数据包却令人困惑。好吧,酷。对不起,它没有回答你的问题。如果这对你有用的话,别忘了投赞成票。希望你能很快找到解决问题的方法。更新和新线程供参考@
public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();

        App currentApp = (App)Application.Current;

        string uriString = currentApp.PageData["mediaurl"];

        MessageBox.Show(uriString);

        Microsoft.SilverlightMediaFramework.Core.Media.PlaylistItem item = new Microsoft.SilverlightMediaFramework.Core.Media.PlaylistItem();

        item.MediaSource = new Uri(uriString, UriKind.Absolute);

        item.DeliveryMethod =
          Microsoft.SilverlightMediaFramework.Plugins.Primitives.DeliveryMethods.AdaptiveStreaming;

        //Add PlaylistItem to the Media playlist
        Microsoft.SilverlightMediaFramework.Core.SMFPlayer SMFPlayer = new Microsoft.SilverlightMediaFramework.Core.SMFPlayer();

        SMFPlayer.Playlist.Add(item);

        SMFPlayer.Play();


    }
}
<Media:PlaylistItem DeliveryMethod="AdaptiveStreaming" MediaSource="http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest" />
<Media:PlaylistItem x:Name="playListItem" DeliveryMethod="AdaptiveStreaming"/>
public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();

        App currentApp = (App)Application.Current;

        string uriString = currentApp.PageData["mediaurl"];

        MessageBox.Show(uriString);

        //reference item by name
        Microsoft.SilverlightMediaFramework.Core.Media.PlaylistItem item = this.playListItem;

        item.MediaSource = new Uri(uriString, UriKind.Absolute);
        //...other code
    }
}
<Grid x:Name="LayoutRoot" Background="White" 
   xmlns:smf="http://schemas.microsoft.com/smf/2010/xaml/player">
    <smf:SMFPlayer HorizontalAlignment="Stretch" Margin="0" 
         x:Name="sMFPlayer" VerticalAlignment="Stretch" />
</Grid> 
using Microsoft.SilverlightMediaFramework.Core.Media;
using Microsoft.SilverlightMediaFramework.Plugins.Primitives;
//...
public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();

        App currentApp = (App)Application.Current;

        string uriString = currentApp.PageData["mediaurl"];

        var item = new PlaylistItem();
        item.MediaSource = new Uri(uriString, UriKind.Absolute);
        item.DeliveryMethod = DeliveryMethods.AdaptiveStreaming;

        //Add PlaylistItem to the Media playlist
        sMFPlayer.Playlist.Add(item);
        sMFPlayer.Play();
    }
}