2016-04-15 9 views
2

Ich bin nicht vertraut mit Silverlight (5), aber denke, ich bin nah dran zu bekommen, was ich versuche zu arbeiten. Dankbar für jede Hilfe.Silverlight 5 dynamische Stream-URI-Einstellung

Grundsätzlich muss ich eine dynamisch generierte Smooth Stream URI in den Player und "Media Source" korrekt festlegen.

Schritte Ich nehme ..

Client-Aufruf, ein einzelner Schlüssel-Wert-Paar ..

<param name="InitParams" value="mediaurl=http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest" /> 

MainPage.xaml ..

<!--Media:PlaylistItem DeliveryMethod="AdaptiveStreaming" MediaSource="mPlayer" /--> 

App.xaml.cs

public Dictionary<string, string> PageData = new Dictionary<string, string>(); 
private void Application_Startup(object sender, StartupEventArgs e) 
{ 
    var paramValues = e.InitParams; 

    foreach (var param in paramValues) 
    { 
     this.PageData.Add(param.Key, param.Value); 

    } 

    this.RootVisual = new MainPage(); 

} 

MainPage.xaml.cs ..

Visual Studio 2015 Compiler beschwert sich nicht mit MainPage.xaml.cs, aber es funktioniert nicht. Der Silverlight-Player spielt statische URIs in Ordnung, aber keine URIs, die in InitParam übergeben wurden.

+0

der Hoffnung, dies nicht eine dumme Frage. Die statischen und übergebenen Initparam-Werte, die Sie getestet haben, sind gleich? – Nkosi

+0

Derselbe URI mit statischen und in initparam übergebenen. Mein Code bricht in MainPage.xaml.cs aus irgendeinem Grund ab, da uriString auf OK gesetzt wird. Versuchen Sie einfach, die MediaSource MainPage.xaml an UriString zu binden. – Bondi

+0

Gibt es eine Fehlermeldung? – Nkosi

Antwort

0

Sie sagen, dass Sie die URL manuell einstellen wie das funktioniert ...

<Media:PlaylistItem DeliveryMethod="AdaptiveStreaming" MediaSource="http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest" /> 

in diesem Fall müssen Sie Ansicht aktualisieren, so dass Sie Kontrolle zugänglich Namen von Code hinter machen kann (IDE).

<Media:PlaylistItem x:Name="playListItem" DeliveryMethod="AdaptiveStreaming"/> 

und dann in der Code-behind, Referenz, die Kontrolle

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 
    } 
} 

Das andere Beispiel über den Link Ich habe Sie es so taten.

In 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> 

In MainPage.xaml.cs

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(); 
    } 
} 
+0

@Nikoski Ich werde das wahrscheinlich in einen neuen Thread verschieben. Ich habe beide Ansätze ausprobiert und kann jetzt nur Audio und nicht Video abspielen, für URIs, die ich in XAML statisch zugewiesene glatte Streams abspielen kann. Die ursprüngliche Frage wurde beantwortet, wie man dynamische Smooth-Stream-URIs an den Silverlight-Player übergibt und danke für Ihren Rat. Warum kann ich in Silverlight 5 kein Video von mehreren glatten Streaming-Quellen sehen, und die Bedienelemente des Players funktionieren nicht, aber das Hören von Audio und das Sehen von Video- und Audiopaketen in Fiddler ist verblüffend. – Bondi

+0

OK cool. Entschuldigung, es hat deine Frage nicht beantwortet. Wenn es dir etwas nützt, vergesse nicht zu upvoten. Hoffe, dass Sie bald eine Lösung für Ihr Gesamtproblem finden. – Nkosi

+0

upvoted und neuer Thread FYI @ http://stackoverflow.com/questions/36767344/no-smooth-streaming-video-only-audio-in-code-behind-with-silverlight-5 – Bondi