Windows phone 8-emulator - warum kann ich nicht spielen audio-Dateien?

Ich die Umwandlung einer app, die geschrieben wurde in Silverlight, und so weit ich ' ve gelang es, die Lösung all der Probleme, mit einer Ausnahme:

Aus irgendeinem Grund, den emulator weigert sich zu spielen alle audio-Dateien von der app, und es ist nicht einmal eine Ausnahme. Ich habe überprüft, und in der Klingelton-Kategorie es können Geräusche machen.

Der ursprüngliche code war :

<Grid x:Name="sharedFullScreenFilePathContainer"
Tag="{Binding StringFormat=\{0\},Converter={StaticResource fullScreenImageConverter}}">

    <Image x:Name="fullScreenImage" Stretch="Fill"
Source="{Binding ElementName=sharedFullScreenFilePathContainer,Path=Tag, StringFormat=../Assets/images/\{0\}.jpg}"
ImageFailed="onFullScreenImageFailedToLoad" MouseLeftButtonDown="onPressedOnFullScreenImage" />

    <MediaElement x:Name="mediaPlayer" AutoPlay="True"
Source="{Binding ElementName=sharedFullScreenFilePathContainer,Path=Tag, StringFormat=../Assets/sounds/\{0\}.wma}" />
</Grid>

so, das Bild, das ich eingestellt habe, zu diesem Element, der Rahmen ist wirklich gezeigt, aber der sound, der wirklich existiert, auf dem Weg, mit denen ich es nicht spielen (hab ich überprüft in dem "Bin" - Ordner).

Ich habe versucht, den code verwenden, anstelle von xaml, aber ich habe immer noch das gleiche problem.

Ich hab das versucht (obwohl es in der Regel verwendet für die hintergrund-Musik):

AudioTrack audioTrack = new AudioTrack(new Uri("../Assets/sounds/" + fileToOpen, UriKind.Relative), "", "", "", null);
BackgroundAudioPlayer player = BackgroundAudioPlayer.Instance;
player.Track = audioTrack;
player.Play();

Es nicht alles spielen, und auch nicht werfen eine Ausnahme.

Ich habe auch versucht den nächsten code, aber es löst eine Ausnahme aus (Datei nicht gefunden Ausnahme) wahrscheinlich weil ich nicht richtig:

Stream stream = TitleContainer.OpenStream("@Assets/sounds/" + fileToOpen);
SoundEffect effect = SoundEffect.FromStream(stream);
FrameworkDispatcher.Update();
effect.Play();

Habe ich auch versucht, mit wma-Dateien, aber es auch nicht funktioniert.

Ich auch versucht zu spielen mit den "copy to output directory" - parameter der mp3-Dateien ("immer" und "nur, wenn neuer" ) und mit der "build action" - parameter (auf "none" und "Inhalte" ). Nichts hilft.

Kann jemand mir bitte helfen? Ich wusste nicht, entwickeln für Silverlight/WP für eine sehr lange Zeit und ich kann nicht herausfinden, wie es zu lösen ist .

Btw, da später muss ich wissen, Wann der sound zu Ende gespielt (und auch in der Lage sein, um es zu stoppen), möchte ich code sowieso. Ich würde mich freuen, wenn du mir auch sagen, wie es zu tun (ich kann Sie bitten, es auf einen neuen post, wenn nötig).


BEARBEITEN:
ok , ich habe herausgefunden, das problem : ich habe immer eine seltsame Ausnahme bei Verwendung der MediaPlayer.Play() Methode , und nach der überprüfung, die über die Ausnahme , die ich gefunden habe, heraus, dass es ist ein bekanntes Problem , und das muss ich anrufen FrameworkDispatcher.Update(); Recht vor, die ich rufen Sie die Play () - Methode .

also die Lösung wäre etwas wie das hier tun:

Song song = Song.FromUri(...);
MediaPlayer.Stop(); 
FrameworkDispatcher.Update();
MediaPlayer.Play(song);

Ausnahme ist:

'- System.InvalidOperationException' ist in System.Windows.ni.dll"

habe ich die Lösung gefunden hier .

Nun die Frage ist warum , und wie kommt es, dass ich didn ' T finden Sie alles, was rund um Sie in die demos von windows phone ? Außerdem würde ich gerne wissen, was diese Funktion tut .


ok , denn niemand gab mir eine Antwort auf beide Fragen , und ich möchte noch zu geben, die bounty , ich werde Sie bitten, eine andere Frage :

Wenn es wirklich keine andere Lösung als mit dem MediaPlayer-Klasse für windows phone , wie kann ich die erfassen den Fall der Beendigung der Wiedergabe einer audio-Datei ? Auch die audio-Datei Dauer nicht funktioniert (hält 0 zurückgeben Länge , egal welche Klasse ich habe versucht, zu verwenden) ...

  • Haben Sie gesehen, es ist, weil Sie durch die Verwendung von XNA-spielen audio! msdn.microsoft.com/library/ff842408.aspx
  • Bitte verzeihen Sie mir . Ich habe geschrieben, dass ich bin ein newb bei WP . Habe ich eine Wahl, wie zu spielen die audio-Datei ? ich wollte nur, es zu spielen (und halt die vorherigen, wenn nötig) . Macht es viel aus, wenn die app verwendet XNA ? Ist es nicht ein Teil der API ? Nur ich weiß wirklich nicht viel über, und ich kann nicht verstehen, warum es so viele Schritte zu tun, etwas so grundlegendes und einfaches .
  • Kein problem, ich denke nur, Sie haben einige Probleme zu schreiben, die richtigen Verweis auf die Medien-Ressourcen aus Ihrer Anwendung, um das MediaElement, es ist keine große Sache spielen Sie eine audio-Datei auf dem Windows-Phone 🙂
  • Nein , ich habe es auf "Inhalt" und setzen Sie ihn auf "kopieren, wenn neuer" . das war nicht das problem . das problem war eine sehr seltsame Ausnahme, dass ich immer noch nicht verstehen, was es bedeutet , und warum das, was ich gefunden habe, behebt es.
  • Wie und warum richtig die FrameworkDispatcher ist hier beschrieben: kunal-chowdhury.com/2012/07/... ich weiß, Es ist ein wenig Schmerzen, aber für einige Funktionen in WP8, die Sie gerade haben, tiefer zu Graben. Nicht alles ist in der basic-Beispiele.
  • Vielen Dank für diese . Aber ich sehe immer noch so viele grundlegende features fehlen . Zum Beispiel , wie würde ich ein Beobachter, um die Falle der Beendigung der Wiedergabe eines Songs über das MediaPlayer-Objekt ? oder sogar stoppen Sie alle songs (löschen der Warteschlange ) ? Ich kann nicht finden, eine gute API und schauen, was die VS bietet mir an , es scheint unmöglich mit dem MediaPlayer . Gibt es nicht eine gute API für die Wiedergabe von audio-und haben eine gewisse Kontrolle über es ?

Schreibe einen Kommentar