BGMを停止させるには?


KBC  2003-11-07 00:55:36  No: 109737

Call mciSendString("open "".\test.mid"" alias bgm1", "", 0, 0)
Call mciSendString("play bgm1 from 0", "", 0, 0)
で再生している音楽を停止させる方法を教えてください。


たかみちえ  URL  2003-11-07 03:50:39  No: 109738

とりあえず以下サイトを見てください。
http://www.bekkoame.ne.jp/i/mr.manri/MCI/


KBC  2003-11-12 22:45:18  No: 109739

停止させることができました。
あと、リピート再生の方法を教えてください。(VB6.0の言語でお願いします)


よねKEN  2003-11-13 00:01:54  No: 109740

seekで巻戻して、playで再生すればOKです。しかし、演奏の終了タイミングを知るためには、
MCIコマンドのnotifyオプションとMciSendString関数の第四引数を使って
コールバックで受ける必要があってとっても面倒です。
やるなら、下記を参考にして下さい。必要な情報は網羅されていると思います。

「マルチメディア自由自在! 高レベルMCIを使う」 
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/mci/
「Visual Basicの限界を広げるサブクラス化の手法 」
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/subc/


CK  2005-10-25 08:55:22  No: 109741

Call mciSendString("open "".\test.mid"" alias bgm1", "", 0, 0)
Call mciSendString("play bgm1 from 0", "", 0, 0)
ってどこに記述するんでしょうか?


|」`)  2005-10-25 09:02:34  No: 109742

|ω・`) このスレは混乱を来たしています。
マルチっぽい香り&釣り氏の予感がします。


我龍院忠太  2005-10-25 17:52:26  No: 109743

何か勘違いが有って上手くいかないのでしょう。
とりあえずフォームにボタンを一つ置いて
Private Declare Function sndPlaySound _
 Lib "winmm.dll" Alias "sndPlaySoundA" _
 (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Const SND_ASYNC = &H1
Private Sub Command1_Click()
    Dim r As Long
    r = sndPlaySound("C:\WINNT\Media\chimes.wav", SND_ASYNC)
End Sub
をやってみましょう。


CK  2005-10-25 20:40:27  No: 109744

我龍院さんありがとうございます。
実際にはチェックボックスにチェック入っていたら
音鳴らしチェック外されたら音を消すって事をしたいのですが、
何しろ初心者なので書き方がよく分かりません。
↓自分で変更してみたのですが後どこを変更すればよいでしょうか??
Private Sub Check1_change()
    Dim r As Long
    If Checkbox1.Value = False Then
    elself Checkbox1.Value = True Then'←このThenは必要ないんでしょうか?
    r = sndPlaySound("C〜.wav", SND_ASYNC)
End Sub


我龍院忠太  2005-10-25 21:57:53  No: 109745

CheckBoxのValueはチェック、未チェック、無効  という3つの値を取るので
True、Falseでなく0、1、2の内のいずれかです。
で、Value = 1の時に鳴らせばいいわけですよね。


CK  2005-10-26 01:02:11  No: 109746

1チェック
2未チェック
0無効って事ですね?

Private Sub Check1_change()
    Dim r As Long
    If Checkbox1.Value = 1 Then
        r = sndPlaySound("〜.wav", SND_ASYNC)
    elself Checkbox1.Value = 2
        r = sndStopSound("〜.wav", SND_ASYNC)'←これでいいのでしょうか?
End Sub


特攻隊長まるるう  2005-10-26 01:14:51  No: 109747

elself では無くて elseif です。スペルミスですね。

If 文が閉じてません。構文エラーです。ヘルプで if 文の
書き方を確認して下さい。


CK  2005-10-26 01:37:54  No: 109748

MSDNがないって言われたのでネットでイフ文の書き方調べました。
・VB
If (条件A) Then
'条件Aを満たした時に行なう処理
ElseIf (条件B) Then
'条件Bを満たした時に行なう処理
Else
'その他の時に行なう処理
End If 
Private Sub Check1_change()
    Dim r As Long
    If Checkbox1.Value = 1 Then
        r = sndPlaySound("〜.wav", SND_ASYNC)
    ElseIf Checkbox1.Value = 2 Then
        r = sndStopSound("〜.wav", SND_ASYNC)
    Else
End Sub
どこがおかしいでしょうか??


特攻隊長まるるう  2005-10-26 01:43:08  No: 109749

End If が抜けてるので If 文が終わってません。


Blue  2005-10-26 01:43:31  No: 109750

End If はありますか?

というか、エラーメッセージで Ifブロックに対応するEnd Ifが〜
とでませんか?


我龍院忠太  2005-10-26 02:30:28  No: 109751

>End If が抜けてるので If 文が終わってません。
>End If はありますか?
と言うか、その前にチェックボックスにChangeイベントなんかあったけ。
どんな環境で開発してますか?


特攻隊長まるるう  2005-10-26 02:55:22  No: 109752

>と言うか、その前にチェックボックスにChangeイベントなんかあったけ。
あ。そこは敢えてユーザ独自のチェックボックスチェック関数という解釈で
突っ込まなかったのにw
オブジェクトのイベントは[コード ウィンドウ]上部の[オブジェクト]ボックス
と[プロシージャ]ボックスを使うべきですね。IntelliSense も最大限
利用した方が良いですよね。スペルミスや思い込みによる単純なミスを
防げますから。
↑すべてヘルプに載ってる単語ですが…MSDN が無い開発って厳しいだろう
なぁ。


ガッ  2005-10-26 03:28:29  No: 109753

> ↑すべてヘルプに載ってる単語ですが…MSDN が無い開発って厳しいだろう
なぁ。
むかーしVB5の時に経験してみますた…
オブジェクト指向には入力補完とオブジェクトのヘルプがなければいけないことを痛感しました(TT
ネットも繋いでなかったからお手上げ(orz


CK  2005-10-26 10:43:57  No: 109754

Private Sub Check1_change()
    Dim r As Long
    If Checkbox1.Value = 1 Then
        r = sndPlaySound("〜.wav", SND_ASYNC)
    ElseIf Checkbox1.Value = 2 Then
        r = sndStopSound("〜.wav", SND_ASYNC)
    Else
    End if
End Sub
こうですか?

Check1_change()ってないんですか?
EXCELのVBA上がりの初心者なもんですいません


通ってみた  2005-10-26 17:31:06  No: 109755

>>    Else
>>    End if

ん?Elseの意味は?

>>Check1_change()ってないんですか?

ん?開発環境ないの?


特攻隊長まるるう  2005-10-26 18:16:50  No: 109756

>>>    Else
>>>    End if
>ん?Elseの意味は?
'その他の時に行なう処理
…が存在しないなら意味は無いのでしょうね。
省略しても問題ないでしょう。

>Check1_change()ってないんですか?
オブジェクトブラウザで確認すれば、そのオブジェクトに
どんなメソッド・プロパティ・イベントが用意されているか
確認できると思いますが?普段のコーディングでそんな確認
しないんですか???

>EXCELのVBA上がりの初心者なもんですいません
エクセルのVBAでもオブジェクトブラウザはあるし
コードウィンドウの上部に[オブジェクト]ボックスと
[プロシージャ]ボックスもありますし、ヘルプに説明
が載ってます。…まぁ、エクセルVBAのヘルプの
いるかちゃんはおバカな子なので、必要な情報に辿り着く
のに苦労する事はあるかもしれませんが、コーディング
を支援してくれる基本的な機能は早めに理解しておき
ましょう。


通ってみた  2005-10-26 18:17:46  No: 109757

ヒント:チェックボックスが変化する時の動作

チェックボックスをクリックするよね


CK  2005-10-26 22:36:47  No: 109758

Private Sub Check1_Click()'←クリックに
    Dim r As Long
    If Checkbox1.Value = 1 Then
        r = sndPlaySound("〜.wav", SND_ASYNC)
    ElseIf Checkbox1.Value = 2 Then
        r = sndStopSound("〜.wav", SND_ASYNC)
    End if'ELSE省略
End Sub

ほかに何か問題あるでしょうか?


CK  2005-10-26 23:13:40  No: 109759

Private Sub Check1_Click()
Dim r As Long
    If Check1.Value = 1 Then
        r = sndPlaySound("〜.wav", SND_ASYNC)
    ElseIf Check1.Value = 2 Then
        'r = sndStopSound("〜.wav", SND_ASYNC)'←止める方法が分かりません
    End If
End Sub


ななし  2005-10-26 23:21:09  No: 109760

わかりません、じゃなくってそれに対して何を調べたのさ?


通ってみた  2005-10-26 23:31:18  No: 109761

r = sndPlaySound("", SND_ASYNC)

で止まらなかったっけ?

とりあえず「sndplaysound」で検索してみれば、たぶんすぐ答えが出ると思うんだけどどう?やってみる気ない?


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

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






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