サウンドが現在ミュート状態かどうかを知るには

解決


VON  2007-04-15 07:18:17  No: 98554

(XP,VB6)

サウンドをミュートにしたりミュートを解除したりする方法は、なんとか見つけることができたのですが、現在サウンドがミュート状態かどうかを知る方法がわかりませんでした。
現在ミュート状態かどうかを知るにはどうしたらよいでしょうか?
どうかご教授下さいませ。よろしくお願い申し上げます。

ミュートにしたりミュートを解除したりする方法を見つけたサイト(外国)です。
http://www.st-software.at/tips/tip2103mute.php


オショウ  2007-04-15 09:54:18  No: 98555

mixerGetControlDetails
mixerSetControlDetails
この2つのAPI調べてみて下さい。
できます。
以上。


VON  2007-04-15 10:59:59  No: 98556

調べてみましたが、分かりませんでした。
APIを使ったプログラミングはほとんど経験なくチンプンカンプンです。
オショウさん、教えてください、お願いします、後生ですから・・・


Blue  2007-04-15 11:36:37  No: 98557

以前VBAの質問掲示板で回答したものです。
参考にしてください。

http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200610/06100292.txt


かさのば  2007-04-15 11:39:59  No: 98558

何を調べて、その結果何が分からなかったのでしょうか?
API関数の使い方ならVONさんの提示されたリンク先を参考にできませんか?
mixerSetControlDetailsなんかはそのまんま使われているわけですし・・・
API関数の呼び出し宣言(Declare Function 〜  )の書き方が分からないというのであればAPIビューアを使ってください


Blue  2007-04-15 11:43:29  No: 98559

ちなみに、上記サイトのBlue in 2006/10/30(月) 17:17:39 のコードで

Dim volume As Long 
Dim mute As Boolean 
     
MixerVal True, volume, mute
If mute Then
    ' ミュート状態
Else
    ' ミュート状態ではない
End If

とチェックします。


VON  2007-04-16 06:13:53  No: 98560

Blueさん、ありがとうごさいます。

Blueさんの作られたプログラムをそのまま実行したら見事にできました。
ミキサーって本当に難しいですね。

私の場合ミュートかどうかがわかればいいので、教えて頂いたプログラムを参考に下のような関数にしてみました。

大変助かりました。また困った時はよろしくお願いします。
どうもありがとうございました。

Public Function IsMute() As Boolean

    Dim ret As Long
    Dim hMixer As Long
    Dim mxcd As MIXERCONTROLDETAILS
    Dim mxcdMute As MIXERCONTROLDETAILS_BOOLEAN

    Call mixerOpen(hMixer, 0, 0, 0, 0)

    With mxcd
        .cbStruct = Len(mxcd)
        .dwControlID = 2
        .cChannels = 1
        .cMultipleItems = 0
        .cbDetails = Len(mxcdMute)
        .paDetails = VarPtr(mxcdMute)
    End With

    If (ret = MMSYSERR_NOERROR) Then
        ret = mixerGetControlDetails(hMixer, mxcd, MIXER_OBJECTF_HMIXER Or MIXER_GETCONTROLDETAILSF_VALUE)
        IsMute = IIf(mxcdMute.fValue <> 0, True, False)
    End If
    
    mixerClose hMixer

End Function


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加