2016-09-12 5 views
0

私と私の友人が使用するプログラムを作成しています。 Windowsオーディオミキサーを制御するプログラムを作りたいと思います。私はCを使用していますウィンドウミキサーでボリュームの値を読み取る

私はすでにボリュームを制御する方法について考えています。しかし、私は、ミキサー内の各アプリケーションの個々の音量レベルを制御するためのいくつかのヒントを希望します。

主な質問は少し面白いです:各アプリケーションの個々のメーター内のボリュームの値を読み取るにはどうすればよいですか?言い換えれば、私はアプリケーションのボリュームバー/メーター内の緑色と灰色のバーの値を読み込み/取得したいと思います。私は何を意味するのかを示す画像を添付しましたThe Windows Audio Mixer

答えて

0

オーディオミキサー(Sndvol)の各項目は単一のオーディオセッションです。 Here'sセッションがバックグラウンドでどのように機能するかについて、MSDNから絶賛されました。道のうちそれと

は、次のイベントが通知されるように、オーディオセッションイベントをサブスクライブする必要があります:

  • マスターボリュームレベルまたはセッションのサブミックスのミュート状態が変更されました。
  • セッションサブミックスの1つまたは複数のチャネルの音量レベルが変更されました。
  • セッションが切断されました。
  • セッションのアクティビティ状態がアクティブ、非アクティブ、または期限切れに変更されました。
  • セッションに新しいグループ化パラメータが割り当てられました。
  • セッション(アイコンまたは表示名)のユーザーインターフェイスプロパティが変更されました。直接hereからコピー

Core Audio APIはWindows SDKの一部であるため、P/Invokeを使用してコードを実際に呼び出す必要があります。 Core Audio APIには.NETラッパーがいくつかあると思いますが、簡単な検索で簡単に見つけることができます。

編集:ここでは、何をしようとしているのが良いスタートです。セッションサウンドを管理するためのコードが含まれています。私はそれを徹底的に見ていないので、セッションイベントが実装されているかどうかはわかりません。

+0

ありがとうございます。しばらく検索していましたが、この資料の適切な用語がわかりませんでした。これはスタートになります –

+0

@MarnovNあなたの問題の解決策だと思えば、問題ありません。[回答としてマークしてください](http://stackoverflow.com/help/someone-answers) – hankide

関連する問題