
Active Basic4.23.00でプログラムを書いています。
音楽再生ソフトを作ってみようと思い、作り始めたのですが、なかなかループ再生が出来ません。
チェックボックス1がチェックされていると、ループさせようと思っています。
↓問題のコード
Sub MainWnd_MciNotify(flags As Long, DevID As DWord)
If SendMessage(GetDlgItem(hMainWnd,CheckBox1),BM_GETCHECK,0,0)=BST_CHECKED Then
Dim bErr As Long
Dim mpp As MCI_PLAY_PARMS
mpp.dwCallback=hMainWnd
mpp.dwFrom=0
bErr=mciSendCommand(mop.wDeviceID,MCI_PLAY,MCI_NOTIFY or MCI_FROM,mpp)
If bErr Then
MessageBox(hMainWnd,"デバイス再生エラー","Error",MB_OK or MB_ICONHAND)
Exit Sub
End If
Else
mpp.dwCallback=hMainWnd
mpp.dwFrom=0
End If
End Sub
一見、(少なくとも自分は)成功しているように見えるのですが、
2回ループした後、フリーズしてしまいます。
すみませんが、何故そうなるかが分かる方がいらっしゃいましたら、すみませんが、ご教授ください。
お願いします。
No.1ベストアンサー
- 回答日時:
こんばんは。
それですと、再生が終了していないにも関わらず、MciNotifyの中で、2度、3度と再生する事に成ってしまいます。
恐らくこれが原因で固まったのでしょう。
MciNotifyの第一パラメータflagsを確認して、
MCI_NOTIFY_SUCCESSFUL
と等しかった時に再生が終了した事を意味するのですから、その時に再び、音楽を再生してあげれば良いと思います。
ここが参考になります。
http://www13.plala.or.jp/kymats/study/MULTIMEDIA …
以下参考程度に。
Sub MainWnd_MciNotify(flags As Long, DevID As DWord)
'ループのチェックが入っている
If SendMessage(GetDlgItem(hMainWnd,CheckBox1),BM_GETCHECK,0,0) = BST_CHECKED Then
'フラグが再生終了を意味している時
if flags = MCI_NOTIFY_SUCCESSFUL Then
Dim mpp As MCI_PLAY_PARMS
Dim bErr As Long
mpp.dwCallback=hMainWnd
mpp.dwFrom=0
'音楽の位置を先頭に持っていく
bErr = mciSendCommand(DevID,MCI_SEEK,MCI_SEEK_TO_START, byval 0)
If bErr Then MessageBox(hMainWnd,"デバイス再生エラー","Error",MB_OK or MB_ICONHAND)
'再び再生する
bErr = mciSendCommand(DevID,MCI_PLAY,MCI_NOTIFY,mpp)
If bErr Then MessageBox(hMainWnd,"デバイス再生エラー","Error",MB_OK or MB_ICONHAND)
End If
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Flash MX初心者です!
-
Flash3.0 ループ再生について
-
コマンドボタンのクリックによ...
-
チェックボックスを横並びに表...
-
ソーラーパネルのアルミフレー...
-
エクセルVBA フレーム内のイベ...
-
C言語 バッファについて。
-
GetPrivateProfileString変値
-
フレーム内に移動したい
-
HTMLのフレームとテーブル...
-
gotoAndPlayで反応がありません。
-
チャットの自動更新のプログラ...
-
ドロップフレームの計算をエク...
-
phpで音を鳴らす
-
cisco catalystのトラブルシュ...
-
WEBブラウザの重複起動の禁止
-
VB6のスクロールバー付きフレー...
-
外部テキスト読み込み、横スク...
-
2倍速を等速動画に(車載動画)
-
マクロ ユーザーフォームについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
再生中のフラッシュ・巻き戻し...
-
Flashで右クリックメニューにつ...
-
【C#】wavファイルの複数同時再生
-
ビデオの読み込み時の設定
-
ActiveBasic 音楽のループ再生
-
フレーム内のオプションボタン...
-
フレーム内に移動したい
-
phpで音を鳴らす
-
車の運転時のメガネ 縁なし(...
-
フレームでのResponse.Redirect
-
簡単な連打ゲームを作りたい。
-
Access2010でサブフォームのフ...
-
WEBブラウザの重複起動の禁止
-
オプションボタンを矢印キーで...
-
VBで動的に作成したパネルの上...
-
チェックボックスを横並びに表...
-
C#でブラウザのタイムアウト処理
-
URLを隠す、または別アドレスな...
-
GetPrivateProfileString変値
-
B2ポスターフレームの自作
おすすめ情報