再生デバイス切替

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
コナコナ

再生デバイス切替

#1

投稿記事 by コナコナ » 16年前

Vista/VC6.0です。

コントロールパネルのサウンドに再生のタブがあり、そこに「既定のデバイス」のチェックがついています。
この「既定のデバイス」はどうやったら切り替えられるのでしょうか?

2つスピーカがついており、1つは音量が出ないようにしています。
音が出ないスピーカが「既定のデバイス」となっているのですが、
ある場合のみwaveファイルを再生し、音を出すようにしたいのです。


回答をお願い致します。

situmon

Re:再生デバイス切替

#2

投稿記事 by situmon » 16年前

答えられなかったらすいませんが、
もう少し詳しく画像もつけ他方がわかりやすいと思います。
それは自作の曲ですか?
だったらpanpotで変えられないのでしょうか?
でもほかの方が作った曲ならばpanpotはまちまちですので難しいかもしれません。
panpotとは、
左右どちらのスピーカーで出るかを決めるもの、、、(多分そのはず)
なので・・・
間違えてたらすいません。

コナコナ

Re:再生デバイス切替

#3

投稿記事 by コナコナ » 16年前

situmonさん

回答ありがとうございます。
大変わかりづらい文章で申し訳ありません。

もう少し詳しく説明させていただきます。


今使用している環境ではサウンドデバイス(サウンドカード?)が
複数存在しています。

1つのデバイスからは音が出ない設定になっており、
そのデバイスは「既定のデバイス」となっています
(コントロールパネルのサウンドを見ると)。

また、もう1つのデバイスからは音がでる設定となっています。

waveファイルをmciSendCommandで再生するプログラムを作成したのですが、
音の出ないデバイスが「既定のデバイス」となっている場合、
waveファイルの再生は行うのですが、音がでません。

また、手動でもう一方のデバイスを「既定のデバイス」とした場合には音が出ます。

mciSendCommandのMCI_OPENを実行時、必ず「既定のデバイス」となっている方が
OPENされているような気がします。

やりたいことはデバイスが複数ある場合に、
デバイスを指定してwaveファイルを再生できるようにする事です。


※諸事情により画像は載せることができないですが、
上記説明でわかってもらえると幸いです。

Justy

Re:再生デバイス切替

#4

投稿記事 by Justy » 16年前

[color=#d0b0c0" face="monospace]
>やりたいことはデバイスが複数ある場合に、
>デバイスを指定してwaveファイルを再生できるようにする事です
[/color]

 MCI_WAVE_SET_PARMS構造体の wOutputにデバイスの番号を入れて
MCI_SETでフラグを MCI_WAVE_OUTPUTにすれば良かったような。

mciSendCommand problems : mcisendcommand
ttp://www.experts-exchange.com/Programming/Languages/CPP/Q_11272555.html

MCIコマンド: MCI_SET
ttp://74.125.153.132/search?q=cache:LMgpJQqydIkJ:www.activebasic.com/help_center/Pages/API/Multimedia/MCICommand/MCI_SET.htm+MCI_WAVE_OUTPUT+wOutput&cd=2&hl=ja&ct=clnk&lr=lang_ja

コナコナ

Re:再生デバイス切替

#5

投稿記事 by コナコナ » 16年前

Justyさん

回答ありがとうございます。

>MCI_WAVE_SET_PARMS構造体の wOutputにデバイスの番号を入れて
>MCI_SETでフラグを MCI_WAVE_OUTPUTにすれば良かったような。

ここでwOutputに指定するデバイスの番号は何の番号なのでしょうか?
サウンドカードの番号とすると、どのように取得すれば良いのでしょうか?

Justy

Re:再生デバイス切替

#6

投稿記事 by Justy » 16年前

[color=#d0b0c0" face="monospace]
>デバイスの番号は何の番号なのでしょうか?
[/color]

 0オリジンで何番目だったと思うので、2つデバイスがあるなら、
0か1を指定してみて下さい。

閉鎖

“C言語何でも質問掲示板” へ戻る