2017-10-03 4 views
0

Aufgrund von Anwendungsbeschränkungen kann ich keine IStorageFile in meiner UWP-Anwendung verwenden, daher ist audioGraph.CreateFileInputNodeAsync() keine Option. Ich kann nur die (I/O) Stream mit dem Inhalt der Sounddatei bekommen.Kann AudioGraph Streams abspielen?

Gibt es eine Möglichkeit, einen AudioGraph so einen Strom als Eingabe zu konfigurieren?

Danke!

Antwort

0

Gibt es eine Möglichkeit, einen AudioGraph so zu konfigurieren, dass ein solcher Stream als Eingabe verwendet wird?

Nach der Audio graphs Klasse, ist es drei Arten von Eingangsknoten: „Device Eingangsknoten“, „Datei-Eingangsknoten“ und „Audio-Rahmen-Eingangsknoten“. Leider kein Stream-Eingangsknoten wie du willst. Sie müssen den Stream in StroageFile konvertieren und dann CreateFileInputNodeAsync() Methode verwenden.

Kann AudioGraph Streams abspielen?

Wenn Sie nur die Ströme spielen wollen, ohne StorageFile Klasse zu verwenden, können Sie mit MediaPlayer betrachten. Erstellen der MediaSource von IRandomAccessStream von CreateFromStream Methode. Zum Beispiel:

XAML-Code:

<MediaPlayerElement x:Name="mediaplayer" AutoPlay="True"></MediaPlayerElement> 
<Button x:Name="btnmedia" Click="btnmedia_Click" Content="media play"></Button> 

-Code hinter:

private async void btnmedia_Click(object sender, RoutedEventArgs e) 
{ 
    ... 
    Stream filestream = buffers.AsStream(); 
    IRandomAccessStream randomAccessStream = filestream.AsRandomAccessStream(); 
    MediaSource mediasource = MediaSource.CreateFromStream(randomAccessStream, "mp3"); 
    MediaPlayer player = new MediaPlayer(); 
    player.Source = mediasource; 
    mediaplayer.SetMediaPlayer(player); 
} 

Zusätzlich ist es seltsam, dass Sie nicht StorageFile Klasse in einer UWP App verwenden können. Es ist eine wichtige Klasse für das Dateisystem. Ich denke, Sie sollten überlegen, diese Einschränkungen wenn möglich zu lösen.

0

Sie können einen AudioFrameOutputNode erstellen und ihm den gesamten binären Inhalt des Streams zuführen, vorausgesetzt, Sie können den gesamten Stream in einem binären Puffer im Speicher lesen.

Wenn Sie gleichzeitiges Lesen aus dem Stream koordinieren und die Daten an den AudioFrameOutputNode übergeben müssen, werden die Dinge komplizierter, aber es ist immer noch machbar.

+0

Danke. Klingt wie eine Option. Leider nicht aus der Box. –

Verwandte Themen