WASAPIの排他モードでのOSによる音量調整について

フォーラム TuneBrowser WASAPIの排他モードでのOSによる音量調整について

  • このトピックには5件の返信、2人の参加者があり、最後にTikiにより1年、 2ヶ月前に更新されました。
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #13044
    toto123
    参加者

    wasapiの排他モードを選択しているのですが、OSでの音量調整が可能です。

    なぜでしょうか?

    #13045
    Tiki
    キーマスター

    こんにちは。

    なぜというか、逆に、WASAPIの排他モードでは音量調整できないはずなのでしょうか? (たしかに音量調整できなくなるデバイスはたくさんありますが…)

    #13046
    toto123
    参加者

    こんにちは

    過去にWASAPIを選ぶとOSで音量調整できないデバイスがありましたし、カーネルをパスしなかったら排他じゃないよね?という理解です

    #13047
    Tiki
    キーマスター

    こんにちは。

    うーん、排他モードが「カーネルをパス」しているはずというのは、ちょっと簡単には理解が難しいです。わたしはドライバはカーネル上にあると理解していました。

    カーネルと言われているのは、 (オーディオ界隈では悪名の高い) カーネル・ミキサーのことでしょうか。ちがっていたらすみません。

    この機能は、わたしの理解では現在はオーディオ・エンジンに含まれており、このオーディオ・エンジンはたしかに排他モードではバイパスされます。以下の図などを参照してみてください。

    念のため、ですが、この説明にもあるように、オーディオ・エンジンはカーネル・モードではなくユーザー・モードで動作します。

    で、排他モード/共有モードでこのオーディオ・エンジンをバイパスする/しないという話と、ボリューム制御ができる/できないという話は微妙にべつの話になると思っています。ボリューム制御をデバイスで行っている場合は、排他モード/共有モードに関係なくボリューム制御ができますし、デバイスではなくオーディオ・エンジンで行っている場合は、(排他モードではバイパスされますので) ボリューム制御はできなくなるものと思われます。

    関係して、上図にも記載のあるEndpointVolume API内のIAudioEndpointVolumeインターフェイスには以下のような説明があります。

    ここには、

    デバイスにハードウェア ボリュームとミュート コントロールがある場合、 IAudioEndpointVolume インターフェイスを介してデバイスのボリュームとミュート設定に加えられた変更は、共有モードと排他モードの両方のボリューム レベルに影響します。

    とあります。

    以上のことから、前提とされている「WASAPIの排他モードでは音量調整できない」は失礼ながら正確ではなく、「WASAPIの排他モードでは音量調整できないことがある」というのが正しいのではないかなと思います。

    #13051
    Tiki
    キーマスター

    こんにちは。

    先ほど公開した先行版1665で、(細かいので更新内容には記載していませんが) WASAPIデバイスがハードウェアボリュームをサポートしているかどうかを参考情報としてログに出力するようにしてみました。

    EndpointVolume hardware support: Volume: Yes Mute: Yes

    というような形です。もし興味があれば、ご利用のデバイスでの表示をご確認されてはと思います。

    #13094
    Tiki
    キーマスター

    だいぶ時間がたちましたので、このトピックはクローズさせていただきます。

    タイトルを内容に合わせて変更させていただきますね。

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • トピック「WASAPIの排他モードでのOSによる音量調整について」には新しい返信をつけることはできません。