HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1020
starsWindowsXPで音の出力方向(音量バランス)をボタンを押したら変更したい4解決


stars

リンク

2015/10/20(Tue) 22:35:17|NO.72405

古いパソコンのWindowsXPとHSP3.4で推理アドベンチャーを作っています。
あるトリックのシーンで音の鳴ってる方向(音の出力方向)を
ボタンを押したら切り替わるようにしたいです。
ボタンを押したら左から鳴ってた音が右から聴こえてくるみたいな処理です。

音の出力方向(音量バランス)の切り替えだけなので簡単にできそうなのですが
HSPの命令でどう記述したらいいのかさっぱりわかりません。
おそらくWindows内部への命令みたいな部分を直接呼び出すとできると思いますが、
僕のレベルではいろいろと調べてもわかりません。
誰か教えてくれませんか。宜しくお願いします。

ボタンを押したら切り替えの部分以外のプログラムの流れはなんとか作れました。
汚いプログラムソースでごめんなさい。テスト実行するときは
mymusic.mp3と書かれている部分は適当なmp3ファイルに置き換えてください。



//音を鳴らす mmload "mymusic.mp3",0,1 mmplay 0 //切り替えボタン設置 pos 20,60 objsize 100,50 button "切り替え!",*kirikae //切り替え状態変数(最初は左側から鳴る) kirikae_joutai = 0 ;0=左側から鳴る ;1=右側から鳴る //ループ処理 //------------------------------------ *saisei_loop redraw 0 color 255,255,255 boxf pos 20,10 color 0,0,0 mes "ボタンを押すと音の出力方向が切り替わります。" mes "切り替え状態(0=左、1=右):" + kirikae_joutai redraw 1 await 16 goto *saisei_loop //------------------------------------ //ボタンが押されたらここにきて音の出力方向を切り替える処理 *kirikae if kirikae_joutai = 0 { //■■■■■■■■■■■■■■■■■■■■■■■ //■ここの場所で出力を右から鳴るように変えたい■ //■■■■■■■■■■■■■■■■■■■■■■■ kirikae_joutai = 1 ;切り替え状態変数を切り替え }else{ //■■■■■■■■■■■■■■■■■■■■■■■ //■ここの場所で出力を左から鳴るように変えたい■ //■■■■■■■■■■■■■■■■■■■■■■■ kirikae_joutai = 0 ;切り替え状態変数を切り替え } goto *saisei_loop



この記事に返信する


ZAP

リンク

2015/10/20(Tue) 23:27:10|NO.72407

ミキサーをいじる必要があるので
もしかしたらOSの種類によってプログラムを別々に用意する必要がある?

汎用性を考えたらDirectSoundを使って音のバランスを調整した方が無難かも



暇人

リンク

2015/10/21(Wed) 00:11:00|NO.72410

mciを使ってみる

dialog "mp3",16 music=" \""+refstr+"\" " //パスにスペースがあっても良いように対処 mci "open "+music+" type mpegvideo" //ファイルを指定してデバイスを使えるようにする if stat<0 {mci "open "+music+" type mpegvideo2"}//mpegvideoで開けないならmpegvideo2を使用 mci "play "+music //音を鳴らす //切り替えボタン設置 pos 20,60 objsize 100,50 button "切り替え!",*kirikae //切り替え状態変数(最初は左側から鳴る) kirikae_joutai = 0 ;0=左側から鳴る ;1=右側から鳴る mci "setaudio "+music+" left volume to 1000" //左ボリューム設定 mci "setaudio "+music+" right volume to 0" //右ボリューム設定 //ループ処理 //------------------------------------ *saisei_loop redraw 0 color 255,255,255 boxf pos 20,10 color 0,0,0 mes "ボタンを押すと音の出力方向が切り替わります。" mes "切り替え状態(0=左、1=右):" + kirikae_joutai redraw 1 await 16 goto *saisei_loop //------------------------------------ //ボタンが押されたらここにきて音の出力方向を切り替える処理 *kirikae if kirikae_joutai = 0 { //■■■■■■■■■■■■■■■■■■■■■■■ //■ここの場所で出力を右から鳴るように変えたい■ //■■■■■■■■■■■■■■■■■■■■■■■ mci "setaudio "+music+" left volume to 0" mci "setaudio "+music+" right volume to 1000" kirikae_joutai = 1 ;切り替え状態変数を切り替え }else{ //■■■■■■■■■■■■■■■■■■■■■■■ //■ここの場所で出力を左から鳴るように変えたい■ //■■■■■■■■■■■■■■■■■■■■■■■ mci "setaudio "+music+" left volume to 1000" mci "setaudio "+music+" right volume to 0" kirikae_joutai = 0 ;切り替え状態変数を切り替え } goto *saisei_loop



窓月らら

リンク

2015/10/21(Wed) 01:54:51|NO.72414

hspogg か hgimg3 を使えば楽勝です。
詳しくは HSP Document Library を見てね。

サウンドデータのパン設定
dmmpan p1,p2
p1(0) : サウンドID
p2(0) : パンニング値(-10000〜10000)



stars

リンク

2015/10/21(Wed) 18:40:45|NO.72422

みなさんどうもありがとうございました。
いくつか処理の方法があるのですね、大変勉強になりました。
HSPの魅力にハマってしまったので僕ももっと勉強したいと思います。
また何かありましたら宜しくお願いします。



ONION software Copyright 1997-2023(c) All rights reserved.