Call mciSendString("open "".\test.mid"" alias bgm1", "", 0, 0)
Call mciSendString("play bgm1 from 0", "", 0, 0)
で再生している音楽を停止させる方法を教えてください。
とりあえず以下サイトを見てください。
http://www.bekkoame.ne.jp/i/mr.manri/MCI/
停止させることができました。
あと、リピート再生の方法を教えてください。(VB6.0の言語でお願いします)
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/
Call mciSendString("open "".\test.mid"" alias bgm1", "", 0, 0)
Call mciSendString("play bgm1 from 0", "", 0, 0)
ってどこに記述するんでしょうか?
|ω・`) このスレは混乱を来たしています。
マルチっぽい香り&釣り氏の予感がします。
何か勘違いが有って上手くいかないのでしょう。
とりあえずフォームにボタンを一つ置いて
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
をやってみましょう。
我龍院さんありがとうございます。
実際にはチェックボックスにチェック入っていたら
音鳴らしチェック外されたら音を消すって事をしたいのですが、
何しろ初心者なので書き方がよく分かりません。
↓自分で変更してみたのですが後どこを変更すればよいでしょうか??
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
CheckBoxのValueはチェック、未チェック、無効 という3つの値を取るので
True、Falseでなく0、1、2の内のいずれかです。
で、Value = 1の時に鳴らせばいいわけですよね。
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
elself では無くて elseif です。スペルミスですね。
If 文が閉じてません。構文エラーです。ヘルプで if 文の
書き方を確認して下さい。
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
どこがおかしいでしょうか??
End If が抜けてるので If 文が終わってません。
End If はありますか?
というか、エラーメッセージで Ifブロックに対応するEnd Ifが〜
とでませんか?
>End If が抜けてるので If 文が終わってません。
>End If はありますか?
と言うか、その前にチェックボックスにChangeイベントなんかあったけ。
どんな環境で開発してますか?
>と言うか、その前にチェックボックスにChangeイベントなんかあったけ。
あ。そこは敢えてユーザ独自のチェックボックスチェック関数という解釈で
突っ込まなかったのにw
オブジェクトのイベントは[コード ウィンドウ]上部の[オブジェクト]ボックス
と[プロシージャ]ボックスを使うべきですね。IntelliSense も最大限
利用した方が良いですよね。スペルミスや思い込みによる単純なミスを
防げますから。
↑すべてヘルプに載ってる単語ですが…MSDN が無い開発って厳しいだろう
なぁ。
> ↑すべてヘルプに載ってる単語ですが…MSDN が無い開発って厳しいだろう
なぁ。
むかーしVB5の時に経験してみますた…
オブジェクト指向には入力補完とオブジェクトのヘルプがなければいけないことを痛感しました(TT
ネットも繋いでなかったからお手上げ(orz
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上がりの初心者なもんですいません
>> Else
>> End if
ん?Elseの意味は?
>>Check1_change()ってないんですか?
ん?開発環境ないの?
>>> Else
>>> End if
>ん?Elseの意味は?
'その他の時に行なう処理
…が存在しないなら意味は無いのでしょうね。
省略しても問題ないでしょう。
>Check1_change()ってないんですか?
オブジェクトブラウザで確認すれば、そのオブジェクトに
どんなメソッド・プロパティ・イベントが用意されているか
確認できると思いますが?普段のコーディングでそんな確認
しないんですか???
>EXCELのVBA上がりの初心者なもんですいません
エクセルのVBAでもオブジェクトブラウザはあるし
コードウィンドウの上部に[オブジェクト]ボックスと
[プロシージャ]ボックスもありますし、ヘルプに説明
が載ってます。…まぁ、エクセルVBAのヘルプの
いるかちゃんはおバカな子なので、必要な情報に辿り着く
のに苦労する事はあるかもしれませんが、コーディング
を支援してくれる基本的な機能は早めに理解しておき
ましょう。
ヒント:チェックボックスが変化する時の動作
チェックボックスをクリックするよね
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
ほかに何か問題あるでしょうか?
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
わかりません、じゃなくってそれに対して何を調べたのさ?
r = sndPlaySound("", SND_ASYNC)
で止まらなかったっけ?
とりあえず「sndplaysound」で検索してみれば、たぶんすぐ答えが出ると思うんだけどどう?やってみる気ない?
ツイート | ![]() |