Silverlight 4-MediaElement-sound Abspielen
Ich konvertiert einen lokalen sound-Datei, einer Ressource, die in meinem XAML:
<UserControl.Resources>
<my:Uri x:Key="SoundFiles">file:///c:/Audio/HebrewDemo/Shalom.wav</my:Uri>
</UserControl.Resources>
Ich habe das durch einfügen einer lokalen Festplatte, mp3-Dateinamen in die Quelle, dann klickte auf den "Punkt", indem Sie Quelle und wählen Sie "Extrahieren Sie den Wert zur Ressource".
Wenn ich laufen, es sagt mir, dass die "Uri" ist nicht gültig, und sicher genug, in der Intellisense, ich sehe andere Elemente, die beginnen mit "uri" aber nicht nur URI selbst.
In der realen Welt, in der ich angeben möchten eine dynamische mp3-Datei-Namen. Ich könnte zum Beispiel über eine Datenbank verfügen, in fremder Sprache Worte für flashcards, ich will spielen Sie eine sound-Datei auf eine URL. Aber ich dachte, ich würde versuchen zu laufen, bevor Sie laufen...
Jetzt versuche ich, diese:
mediaElement1.Source = new Uri(
"http://HebrewResources.com/SoundFiles/Shalom.mp3",
UriKind.Absolute);
mediaElement1.Play();
Die Statusleiste im FireFox-browser zeigt einige Daten von der website. Jedoch habe ich nie den sound höre. Könnte es nur ein encoding-Problem? Wenn es nicht korrekt kodiert, würde ich eine Fehlermeldung erhalten?
Außerdem kann ich den Uri-Anweisung in den laden oder machen Sie es im hintergrund laufen, so kann der Benutzer Lesen, der Bildschirm, gleichzeitig werden die Audio-Datei herunterladen? In anderen Worten, wenn er klickt auf die Taste und höre das soundfile, im Idealfall würde es schon vorbelastet für ihn. In dieser Sprache-lernen-app sieht der Benutzer ein Wort in einer fremden Sprache, und versuchen Sie auszusprechen, um es sich selbst, dann wird er auf den "Play" - Taste, um den sound zu hören, um seine Ergebnisse überprüfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ersten code, der Punkte, um die lokale Datei funktioniert nicht in einem normalen Silverlight-Anwendung aufgrund des Silverlights "sanboxed" security-Modell. Ausführen eines normalen Silverlight-Anwendung in Ihrem browser, können Sie nicht auf lokale Ressourcen zugreifen, wie Sie können, wenn Sie ausgeführt wurden, eine installierte winforms/WPF-Anwendung. Haben Sie einen Blick auf dieses video-tutorial http://www.silverlight.net/learn/videos/all/local-file-access/, wenn Sie mehr darüber erfahren möchten, den Zugriff auf lokale Dateien mithilfe von Silverlight.
In Bezug auf Ihre zweite Stück code, sollte es funktionieren, so ganz vielleicht ist es ein encoding-Problem, und Nein, leider haben Sie oft keine Fehler erhalten für Dinge wie, dass.
Erstellt habe ich eine Beispiel-app, und richtete Sie auf Ihren mp3-Datei und es würde nicht funktionieren, aber eine schnelle Suche für die Probe-mp3s, führen mich zu einem anderen frei zur Verfügung (first hit). Mit den code/die url unten, funktioniert es.
In Bezug auf das laden, es startet den Download der Datei, wenn es Sie trifft der code, der legt die Quelle der mediaelement. Also wenn Ihr die Quelle für das media-element im Konstruktor oder in Ihrem loaded-Ereignis, wird es automatisch im hintergrund heruntergeladen. Dann rufen Sie einfach myMediaelement.Play(); auf die Schaltfläche click-Ereignis.
Wenn Sie finden, dass es mit Firefox ein bisschen beschränkt, wenn es darum geht zu bestimmen, was und Wann so etwas wie externe Dateien oder webservices geladen werden. Es ist eine große Kostenlose tool namens " Fiddler (http://www.fiddlertool.com/fiddler/version.asp) die lassen Sie diese überwachen die Dinge sehr einfach.
Glück 🙂