2016-10-12 4 views
0

AudioGraph 1.1 APIの新しい空間オーディオ機能を試していますが、エミッタなしで作業するファイルからのサウンド出力がありますが、ノードにエミッタを追加するとそれが突然FormatNotSupportedを返します。私は検索を介して何らかの情報を見つけることができません。これは、おそらくそれが新しいAPIだからです。私が何か間違っていることや何かを見逃していると誰にも見えますか?次は私のコードです:AudioGraph.CreateFileInputNodeAsyncの結果、wavとAudioNodeEmitterでFormatNotSupportedが発生する

private async void MainPage_Loaded(object sender, RoutedEventArgs args) 
     { 
      AudioGraphSettings settings = new AudioGraphSettings(AudioRenderCategory.Media); 
      var devices = await DeviceInformation.FindAllAsync(); 
      CreateAudioGraphResult result = await AudioGraph.CreateAsync(settings); 
      if (result.Status != AudioGraphCreationStatus.Success) 
      { 
       return; 
      } 
      graph = result.Graph; 

      FileOpenPicker saveFilePicker = new FileOpenPicker(); 
      saveFilePicker.FileTypeFilter.Add(".wav"); 
      saveFilePicker.FileTypeFilter.Add(".wma"); 
      saveFilePicker.FileTypeFilter.Add(".mp3"); 
      StorageFile file = await saveFilePicker.PickSingleFileAsync(); 

      if (file == null) 
      { 
       return; 
      } 

      AudioNodeEmitter emitter = new AudioNodeEmitter(AudioNodeEmitterShape.CreateOmnidirectional(), 
       AudioNodeEmitterDecayModel.CreateNatural(.1,1,10,100), 
       AudioNodeEmitterSettings.None); 
      emitter.Position = new Vector3(10, 0, 5); 

      CreateAudioDeviceOutputNodeResult deviceOutputNodeResult = await graph.CreateDeviceOutputNodeAsync(); 
      var outputNode = deviceOutputNodeResult.DeviceOutputNode; 

      CreateAudioFileInputNodeResult fileInputNodeResult = await graph.CreateFileInputNodeAsync(file, emitter); 
      inputNode = fileInputNodeResult.FileInputNode; 

      inputNode.AddOutgoingConnection(outputNode); 
      graph.Start(); 
     } 

答えて

1

あなたのコードに問題は問題がある、ありません:

オーディオノードエミッタは48kHzのサンプルレートでモノでフォーマットされたプロセスのみオーディオすることができます。異なるサンプリングレートのステレオオーディオまたはオーディオを使用しようとすると、例外が発生します。

Spatial audioのノート部分を参照できます。

このAPIをテストするには、audio hereをダウンロードしてください。

+0

ありがとうございます!私が見ていた例から "最高のパフォーマンスのために"見たが、それが必要であることを認識していなかった。今はオーディオを再生していますが、yとzの位置を変更してもサウンドには何もしないようです(つまり、サウンドが再生されている間は-70から70に変更されます)。バイノーラル音のほかにヘッドフォンの要件はありますか? – Ceshion

+1

エミッタの相対的な位置をリスナーに動的に変更する方法がないので、違いを聞くのは難しいでしょうか? – Ceshion

+0

@Ceshion、正直言って、これについてはあまりよく分かりません。 –

関連する問題