save stream to file in c# und winrt
Habe ich in c# und winrt:
var stream = await speech.GetSpeakStreamAsync(SpeechText.Text, language);
stream
ist ein Windows.Storage.Streams.IRandomAccessStream
So, ich bin komplett neu in c# und winrt. Wie ich diese stream enthält eine wav-Datei in eine Datei?
Vielen Dank im Voraus, Basilius
InformationsquelleAutor basilius | 2012-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den IRandomAccessStream hat eine Methode namens GetInputStreamAt http://msdn.microsoft.com/en-US/library/windows/apps/windows.storage.streams.irandomaccessstream
Diese bekommt Sie eine IInputStream.
Den IInputStream interface definiert nur eine Methode, ReadAsync, die können Sie Lesen bytes in eine IBuffer Objekt. Windows.Storage.Stream enthält auch eine DataReader-Klasse, die Sie erstellen, basiert auf einer IInputStream Objekt und dann Lesen zahlreichen .NET-Objekte aus dem stream als auch als arrays von bytes. http://www.charlespetzold.com/blog/2011/11/080203.html , http://msdn.microsoft.com/library/windows/apps/BR208119
jetzt haben Sie einen Puffer mit all der gelesenen bytes.
können Sie nun speichern Sie diese Puffer in eine Datei http://blog.jerrynixon.com/2012/06/windows-8-how-to-read-files-in-winrt.html
Dank sehr viel. Ich werde versuchen, es morgen, weil es spät ist. Den Hinweis mit getinputstreamat und datareader scheint sehr hilfreich. Auf winrt-system.io.filestream ist nicht verfügbar. Basilius
Ich Aktualisiert meine Antwort. Ich dachte, Sie verwendet winrt Teil einer desktop-Applikation, Sie waren nicht besonders konkret 😉
Hallo Gerald, als ich worte ich bin nicht so vertraut mit c#, also ich hab einige problemns mit dem code. Ich änderte die Sprache, um vb.net und konvertiert den code mit einem online-übersetzer. Die Zeile, byte[] buffer = new byte[(int)size]; konvertiert Dim Dateipuffer Als Byte() = New Byte(CInt(gesprochenesWort.Größe) - 1) {} aus dem code arbeiten. Die resultierende Datei erstellt wurde, aber war nicht in der Lage zu spielen, mediaplayer. Ich suspeted, dass irgendwas mit dem Puffer ist noch coorrect und nach langem suchen hab ich einen funktionierenden code.
InformationsquelleAutor Gerald Degeneve
Kann ich nicht hinzufügen, den code zu kommentieren, also hier ist der code, der in vb.net:
Dim gesprochenesWort Als Windows.Storage.Streams.IRandomAccessStream
gesprochenesWort = Warten auf Sprich.GetSpeakStreamAsync("Das ist ein Beispieltext", "de")
;Vielen Dank.
Beste Grüße, Basilius
InformationsquelleAutor basilius