2017-10-03 5 views
0

アプリケーションの制約のため、私はUWPアプリケーションでIStorageFileを使用できないため、audioGraph.CreateFileInputNodeAsync()はオプションではありません。 (I/O)Streamはサウンドファイルの内容でしか取得できません。AudioGraphはストリームを再生できますか?

AudioGraphに入力ストリームを使用するよう設定する方法はありますか?

ありがとうございます!

答えて

0

このようなストリームを入力として使用するようにAudioGraphを設定する方法はありますか?

クラスには、「デバイス入力ノード」、「ファイル入力ノード」、「オーディオフレーム入力ノード」の3種類の入力ノードがあります。残念ながらストリーム入力ノードは必要ありません。ストリームをStroageFileに変換してからCreateFileInputNodeAsync()メソッドを使用する必要があります。

AudioGraphはストリームを再生できますか?

StorageFileクラスを使用せずにストリームを再生したい場合は、MediaPlayerを使用することを検討してください。 IRandomAccessStreamからCreateFromStreamメソッドまでMediaSourceを作成する。たとえば:

XAMLコード:背後

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

コード:

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

はさらに、あなたがUWPアプリでStorageFileクラスを使用することができないという奇妙です。これはファイルシステムにとって重要なクラスです。可能であれば、この制約を解決することを検討すべきだと思います。

0

ストリーム全体をメモリ内のバイナリバッファに読み込むことができると仮定して、AudioFrameOutputNodeを作成してストリームのバイナリコンテンツ全体に渡すことができます。

ストリームからの並行読み込みを調整し、AudioFrameOutputNodeにデータを供給する必要がある場合は、もっと複雑になりますが、まだ実行可能です。

+0

ありがとうございました。オプションのように聞こえる。悲しいことに、箱から出ない。 –

関連する問題