目次
サウンドを再生します。.wav,.mid,.avi,.mp3は再生できますが、.m4a,.oggは再生できません。音声ファイルが見つからない場合エラー音が鳴ります。
.aviの動画ファイルを再生するときウィンドウのクラス名はAVIWnd32です。
- 構文
- void = SOUND( ファイル名, 同期フラグ, WAV出力先 )
- 引数
- ファイル名 (String)必須
- 再生ファイル名(WAV, MID, AVI等, 'BEEP' 指定にてBEEP音)もしくはサウンドにて割り当てられたイベント名('LowBatteryAlarm', 'MailBeep', 'SystemAsterisk'等) (ファイル名を省略すると再生をストップ)
- 同期フラグ (Boolean = False)省略可
- FALSE
- 待たない (デフォルト)
- TRUE
- 終了を待つ
- WAV出力先 (Integer = 0)省略可
- WAVファイル時の再生デバイス (0から、デフォルト=0)
- 戻り値
イベント名
サウンドのイベント名はレジストリのHKEY_CURRENT_USER\AppEvents\EventLabels\のサブキーに割り当てられています。
サブキーの一覧は以下のプログラムで取得することができます。
PRINT POWERSHELL("Get-ChildItem -Path <#DBL>Registry::HKEY_CURRENT_USER\AppEvents\EventLabels\<#DBL> | Select-Object PSChildName | ConvertTo-Csv -NoTypeInformation | % {$_ -replace '<#DBL>',''} | Select-Object -Skip 1")
.Default
ActivatingDocument
AppGPFault
BlockedPopup
CCSelect
ChangeTheme
Close
CriticalBatteryAlarm
DeviceConnect
DeviceDisconnect
DeviceFail
DisNumbersSound
EmptyRecycleBin
FaxBeep
FaxError
FaxLineRings
FaxSent
FeedDiscovered
HubOffSound
HubOnSound
HubSleepSound
LowBatteryAlarm
MailBeep
Maximize
MenuCommand
MenuPopup
MessageNudge
Minimize
MisrecoSound
MoveMenuItem
Navigating
Notification.Default
Notification.IM
Notification.Looping.Alarm
Notification.Looping.Alarm10
Notification.Looping.Alarm2
Notification.Looping.Alarm3
Notification.Looping.Alarm4
Notification.Looping.Alarm5
Notification.Looping.Alarm6
Notification.Looping.Alarm7
Notification.Looping.Alarm8
Notification.Looping.Alarm9
Notification.Looping.Call
Notification.Looping.Call10
Notification.Looping.Call2
Notification.Looping.Call3
Notification.Looping.Call4
Notification.Looping.Call5
Notification.Looping.Call6
Notification.Looping.Call7
Notification.Looping.Call8
Notification.Looping.Call9
Notification.Mail
Notification.Proximity
Notification.Reminder
Notification.SMS
Open
PanelSound
PrintComplete
ProximityConnection
RestoreDown
RestoreUp
SearchProviderDiscovered
SecurityBand
ShowBand
SystemAsterisk
SystemExclamation
SystemExit
SystemHand
SystemNotification
SystemQuestion
VNCviewerBell
VS_BreakpointHit
VS_BuildCanceled
VS_BuildFailed
VS_BuildSucceeded
WindowsLogoff
WindowsLogon
WindowsUAC
WindowsUnlock
これらのサブキーはコントロール パネル\ハードウェアとサウンドのシステムサウンドの変更で開くウィンドウのサウンドタブにあるプログラム イベントと対応しています。
以下はレジストリのサブキーとプログラム イベント名の対応表です。システムサウンドの変更でプログラム イベントで初めから表示されているものには初期表示の項目に◯をつけています。
カテゴリはWindows、エクスプローラー、Windows 音声認識は必ずありますが、その他の項目はインストールしているソフトによって違いがあります。
カテゴリ | 項目 | イベント名 | 初期表示 |
---|---|---|---|
Windows | |||
NFP 完了 | Notification.Proximity | ◯ | |
NFP 接続 | ProximityConnection | ◯ | |
Windows のロック解除 | WindowsUnlock | ✕ | |
Windows の終了 | SystemExit | ✕ | |
Windows テーマの変更 | ChangeTheme | ◯ | |
Windows ユーザー アカウント制御 | WindowsUAC | ◯ | |
Windows ログオフ | WindowsLogoff | ✕ | |
Windows ログオン | WindowsLogon | ✕ | |
アラーム 1 | Notification.Looping.Alarm | ✕ | |
アラーム 10 | Notification.Looping.Alarm10 | ✕ | |
アラーム 2 | Notification.Looping.Alarm2 | ✕ | |
アラーム 3 | Notification.Looping.Alarm3 | ✕ | |
アラーム 4 | Notification.Looping.Alarm4 | ✕ | |
アラーム 5 | Notification.Looping.Alarm5 | ✕ | |
アラーム 6 | Notification.Looping.Alarm6 | ✕ | |
アラーム 7 | Notification.Looping.Alarm7 | ✕ | |
アラーム 8 | Notification.Looping.Alarm8 | ✕ | |
アラーム 9 | Notification.Looping.Alarm9 | ✕ | |
インスタント メッセージの通知 | Notification.IM | ◯ | |
システム エラー | SystemHand | ◯ | |
システム通知 | SystemNotification | ◯ | |
ツール バー バンドの表示 | ShowBand | ◯ | |
デスクトップ メールの通知 | MailBeep | ◯ | |
デバイスの切断 | DeviceDisconnect | ◯ | |
デバイスの接続 | DeviceConnect | ◯ | |
デバイス接続の失敗 | DeviceFail | ◯ | |
バッテリ低下アラーム | LowBatteryAlarm | ◯ | |
バッテリ切れアラーム | CriticalBatteryAlarm | ◯ | |
プログラム エラー | AppGPFault | ◯ | |
プログラムの終了 | Close | ◯ | |
プログラムの起動 | Open | ◯ | |
メッセージ (問い合わせ) | SystemQuestion | ◯ | |
メッセージ (情報) | SystemAsterisk | ◯ | |
メッセージ (警告) | SystemExclamation | ◯ | |
メッセージのシェイク | MessageNudge | ◯ | |
メニュー コマンド | MenuCommand | ◯ | |
メニュー ポップアップ | MenuPopup | ◯ | |
一般の警告音 | .Default | ◯ | |
予定表のアラーム | Notification.Reminder | ◯ | |
元に戻す (拡大) | RestoreUp | ◯ | |
元に戻す (縮小) | RestoreDown | ◯ | |
印刷完了 | PrintComplete | ◯ | |
新着テキスト メッセージの通知 | Notification.SMS | ◯ | |
新着ファックスの通知 | FaxBeep | ◯ | |
新着メールの通知 | Notification.Mail | ◯ | |
最大化 | Maximize | ◯ | |
最小化 | Minimize | ◯ | |
着信呼の通知 1 | Notification.Looping.Call | ✕ | |
着信呼の通知 10 | Notification.Looping.Call10 | ✕ | |
着信呼の通知 2 | Notification.Looping.Call2 | ✕ | |
着信呼の通知 3 | Notification.Looping.Call3 | ✕ | |
着信呼の通知 4 | Notification.Looping.Call4 | ✕ | |
着信呼の通知 5 | Notification.Looping.Call5 | ✕ | |
着信呼の通知 6 | Notification.Looping.Call6 | ✕ | |
着信呼の通知 7 | Notification.Looping.Call7 | ✕ | |
着信呼の通知 8 | Notification.Looping.Call8 | ✕ | |
着信呼の通知 9 | Notification.Looping.Call9 | ✕ | |
通知 | Notification.Default | ◯ | |
選択 | CCSelect | ◯ | |
Microsoft Visual Studio | |||
Breakpoint Hit | VS_BreakpointHit | ◯ | |
ビルドが取り消されました | VS_BuildCanceled | ◯ | |
ビルド失敗 | VS_BuildFailed | ◯ | |
ビルド正常終了 | VS_BuildSucceeded | ◯ | |
エクスプローラー | |||
FAX の送信 | FaxSent | ◯ | |
FAX エラー | FaxError | ◯ | |
ごみ箱を空にする | EmptyRecycleBin | ◯ | |
ナビゲーションの完了 | ActivatingDocument | ◯ | |
ナビゲーションの開始 | Navigating | ◯ | |
フィードの発見 | FeedDiscovered | ◯ | |
ポップアップ ウィンドウのブロック | BlockedPopup | ◯ | |
メニュー項目の移動 | MoveMenuItem | ◯ | |
情報バー | SecurityBand | ||
検索プロバイダーの発見 | SearchProviderDiscovered | ◯ | |
着信呼び出し | FaxLineRings | ◯ | |
通知バー | ◯ | ||
Windows 音声認識 | |||
オフ | HubOffSound | ◯ | |
オン | HubOnSound | ◯ | |
スリープ状態 | HubSleepSound | ◯ | |
不明瞭解消パネル | PanelSound | ◯ | |
不明瞭解消数字 | DisNumbersSound | ◯ | |
誤認識 | MisrecoSound | ◯ | |
Microsoft Visual C++ 2010 Express | |||
ビルドが取り消されました | ◯ | ||
ビルド失敗 | ◯ | ||
ビルド正常終了 | ◯ | ||
VNCviewer | |||
Bell | ◯ |
初期表示されていない項目はレジストリを操作することで表示させることができます。HKEY_CURRENT_USER\AppEvents\EventLabels\のサブキーを選択したとき値の名前にExcludeFromCPLがあるものが表示・非表示を切り替えることができる項目で、このデータを0にすることで表示することができます。1で非表示に戻すこともできます。
以下のプログラムは初期表示されていない項目を表示させます。valueの値を0で項目を表示、1で非表示にします。
DIM array[] = "Notification.Looping.Alarm", "Notification.Looping.Alarm10", "Notification.Looping.Alarm2", _
"Notification.Looping.Alarm3", "Notification.Looping.Alarm4", "Notification.Looping.Alarm5", _
"Notification.Looping.Alarm6", "Notification.Looping.Alarm7", "Notification.Looping.Alarm8", _
"Notification.Looping.Alarm9", "Notification.Looping.Call", "Notification.Looping.Call10", _
"Notification.Looping.Call2", "Notification.Looping.Call3", "Notification.Looping.Call4", _
"Notification.Looping.Call5", "Notification.Looping.Call6", "Notification.Looping.Call7", _
"Notification.Looping.Call8", "Notification.Looping.Call9", "SystemExit", _
"WindowsLogoff", "WindowsLogon", "WindowsUnlock"
Dim WshShell = CREATEOLEOBJ("WScript.Shell")
FOR item IN array
DIM name = "HKEY_CURRENT_USER\AppEvents\EventLabels\" + item + "\ExcludeFromCPL"
DIM value = 0 // 「0」で表示、「1」で非表示
DIM type = "REG_DWORD"
WshShell.RegWrite(name, value, type)
NEXT
これらのイベント名はSOUND関数の第一引数に指定することで鳴らすことができます。
以下はすべてのイベント名を取得しそのサウンドを再生させるプログラムです。ESCで強制終了することができます。
SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
DIM str = POWERSHELL("Get-ChildItem -Path <#DBL>Registry::HKEY_CURRENT_USER\AppEvents\EventLabels\<#DBL> | Select-Object PSChildName | ConvertTo-Csv -NoTypeInformation | % {$_ -replace '<#DBL>',''} | Select-Object -Skip 1")
DIM array = SPLIT(str, "<#CR>")
FOR item IN array
FUKIDASI(item)
SOUND(item)
SLEEP(1.000)
NEXT
レジストリのHKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\<イベント名>\.Currentの(既定)の値にはサウンドのWAVファイルのパスが設定されています。
以下はイベント名からWAVファイルのパスを取得します。
HASHTBL sounds
sounds["Notification.Proximity"] = "NFP 完了"
sounds["ProximityConnection"] = "NFP 接続"
sounds["WindowsUnlock"] = "Windows のロック解除"
sounds["SystemExit"] = "Windows の終了"
sounds["ChangeTheme"] = "Windows テーマの変更"
sounds["WindowsUAC"] = "Windows ユーザー アカウント制御"
sounds["WindowsLogoff"] = "Windows ログオフ"
sounds["WindowsLogon"] = "Windows ログオン"
sounds["Notification.Looping.Alarm"] = "アラーム 1"
sounds["Notification.Looping.Alarm10"] = "アラーム 10"
sounds["Notification.Looping.Alarm2"] = "アラーム 2"
sounds["Notification.Looping.Alarm3"] = "アラーム 3"
sounds["Notification.Looping.Alarm4"] = "アラーム 4"
sounds["Notification.Looping.Alarm5"] = "アラーム 5"
sounds["Notification.Looping.Alarm6"] = "アラーム 6"
sounds["Notification.Looping.Alarm7"] = "アラーム 7"
sounds["Notification.Looping.Alarm8"] = "アラーム 8"
sounds["Notification.Looping.Alarm9"] = "アラーム 9"
sounds["Notification.IM"] = "インスタント メッセージの通知"
sounds["SystemHand"] = "システム エラー"
sounds["SystemNotification"] = "システム通知"
sounds["ShowBand"] = "ツール バー バンドの表示"
sounds["MailBeep"] = "デスクトップ メールの通知"
sounds["DeviceDisconnect"] = "デバイスの切断"
sounds["DeviceConnect"] = "デバイスの接続"
sounds["DeviceFail"] = "デバイス接続の失敗"
sounds["LowBatteryAlarm"] = "バッテリ低下アラーム"
sounds["CriticalBatteryAlarm"] = "バッテリ切れアラーム"
sounds["AppGPFault"] = "プログラム エラー"
sounds["Close"] = "プログラムの終了"
sounds["Open"] = "プログラムの起動"
sounds["SystemQuestion"] = "メッセージ (問い合わせ)"
sounds["SystemAsterisk"] = "メッセージ (情報)"
sounds["SystemExclamation"] = "メッセージ (警告)"
sounds["MessageNudge"] = "メッセージのシェイク"
sounds["MenuCommand"] = "メニュー コマンド"
sounds["MenuPopup"] = "メニュー ポップアップ"
sounds[".Default"] = "一般の警告音"
sounds["Notification.Reminder"] = "予定表のアラーム"
sounds["RestoreUp"] = "元に戻す (拡大)"
sounds["RestoreDown"] = "元に戻す (縮小)"
sounds["PrintComplete"] = "印刷完了"
sounds["Notification.SMS"] = "新着テキスト メッセージの通知"
sounds["FaxBeep"] = "新着ファックスの通知"
sounds["Notification.Mail"] = "新着メールの通知"
sounds["Maximize"] = "最大化"
sounds["Minimize"] = "最小化"
sounds["Notification.Looping.Call"] = "着信呼の通知 1"
sounds["Notification.Looping.Call10"] = "着信呼の通知 10"
sounds["Notification.Looping.Call2"] = "着信呼の通知 2"
sounds["Notification.Looping.Call3"] = "着信呼の通知 3"
sounds["Notification.Looping.Call4"] = "着信呼の通知 4"
sounds["Notification.Looping.Call5"] = "着信呼の通知 5"
sounds["Notification.Looping.Call6"] = "着信呼の通知 6"
sounds["Notification.Looping.Call7"] = "着信呼の通知 7"
sounds["Notification.Looping.Call8"] = "着信呼の通知 8"
sounds["Notification.Looping.Call9"] = "着信呼の通知 9"
sounds["Notification.Default"] = "通知"
sounds["CCSelect"] = "選択"
sounds["VS_BreakpointHit"] = "Breakpoint Hit"
sounds["VS_BuildCanceled"] = "ビルドが取り消されました"
sounds["VS_BuildFailed"] = "ビルド失敗"
sounds["VS_BuildSucceeded"] = "ビルド正常終了"
sounds["FaxSent"] = "FAX の送信"
sounds["FaxError"] = "FAX エラー"
sounds["EmptyRecycleBin"] = "ごみ箱を空にする"
sounds["ActivatingDocument"] = "ナビゲーションの完了"
sounds["Navigating"] = "ナビゲーションの開始"
sounds["FeedDiscovered"] = "フィードの発見"
sounds["BlockedPopup"] = "ポップアップ ウィンドウのブロック"
sounds["MoveMenuItem"] = "メニュー項目の移動"
sounds["SecurityBand"] = "情報バー"
sounds["SearchProviderDiscovered"] = "検索プロバイダーの発見"
sounds["FaxLineRings"] = "着信呼び出し"
// sounds[""] = "通知バー"
sounds["HubOffSound"] = "オフ"
sounds["HubOnSound"] = "オン"
sounds["HubSleepSound"] = "スリープ状態"
sounds["PanelSound"] = "不明瞭解消パネル"
sounds["DisNumbersSound"] = "不明瞭解消数字"
sounds["MisrecoSound"] = "誤認識"
// sounds[""] = "ビルドが取り消されました"
// sounds[""] = "ビルド失敗"
// sounds[""] = "ビルド正常終了"
sounds["VNCviewerBell"] = "Bell"
DIM WshShell = CREATEOLEOBJ("Wscript.Shell")
DIM str = POWERSHELL("Get-ChildItem -Path <#DBL>Registry::HKEY_CURRENT_USER\AppEvents\EventLabels\<#DBL> | Select-Object PSChildName | ConvertTo-Csv -NoTypeInformation | % {$_ -replace '<#DBL>',''} | Select-Object -Skip 1")
DIM array = SPLIT(str, "<#CR>")
FOR item IN array
TRY
PRINT sounds[item] + "(" + item + ")" + "," + WshShell.RegRead("HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\" + item + "\.Current\")
EXCEPT
PRINT sounds[item] + "(" + item + ")"
ENDTRY
NEXT
一般の警告音(.Default), C:\windows\media\Windows Ding.wav
ナビゲーションの完了(ActivatingDocument)
プログラム エラー(AppGPFault),
ポップアップ ウィンドウのブロック(BlockedPopup)
選択(CCSelect),
Windows テーマの変更(ChangeTheme),
プログラムの終了(Close),
バッテリ切れアラーム(CriticalBatteryAlarm), C:\windows\media\Windows Battery Critical.wav
デバイスの接続(DeviceConnect), C:\windows\media\Windows Hardware Insert.wav
デバイスの切断(DeviceDisconnect), C:\windows\media\Windows Hardware Remove.wav
デバイス接続の失敗(DeviceFail), C:\windows\media\Windows Hardware Fail.wav
不明瞭解消数字(DisNumbersSound)
ごみ箱を空にする(EmptyRecycleBin)
新着ファックスの通知(FaxBeep), C:\windows\media\Windows Notify.wav
FAX エラー(FaxError)
着信呼び出し(FaxLineRings)
FAX の送信(FaxSent)
フィードの発見(FeedDiscovered)
オフ(HubOffSound)
オン(HubOnSound)
スリープ状態(HubSleepSound)
バッテリ低下アラーム(LowBatteryAlarm), C:\windows\media\Windows Battery Low.wav
デスクトップ メールの通知(MailBeep), C:\windows\media\Windows Notify.wav
最大化(Maximize),
メニュー コマンド(MenuCommand),
メニュー ポップアップ(MenuPopup),
メッセージのシェイク(MessageNudge), %SystemRoot%\media\Windows Message Nudge.wav
最小化(Minimize),
誤認識(MisrecoSound)
メニュー項目の移動(MoveMenuItem)
ナビゲーションの開始(Navigating)
通知(Notification.Default), %SystemRoot%\media\Windows Notify System Generic.wav
インスタント メッセージの通知(Notification.IM), %SystemRoot%\media\Windows Notify Messaging.wav
アラーム 1(Notification.Looping.Alarm), %SystemRoot%\media\Alarm01.wav
アラーム 10(Notification.Looping.Alarm10), %SystemRoot%\media\Alarm10.wav
アラーム 2(Notification.Looping.Alarm2), %SystemRoot%\media\Alarm02.wav
アラーム 3(Notification.Looping.Alarm3), %SystemRoot%\media\Alarm03.wav
アラーム 4(Notification.Looping.Alarm4), %SystemRoot%\media\Alarm04.wav
アラーム 5(Notification.Looping.Alarm5), %SystemRoot%\media\Alarm05.wav
アラーム 6(Notification.Looping.Alarm6), %SystemRoot%\media\Alarm06.wav
アラーム 7(Notification.Looping.Alarm7), %SystemRoot%\media\Alarm07.wav
アラーム 8(Notification.Looping.Alarm8), %SystemRoot%\media\Alarm08.wav
アラーム 9(Notification.Looping.Alarm9), %SystemRoot%\media\Alarm09.wav
着信呼の通知 1(Notification.Looping.Call), %SystemRoot%\media\Ring01.wav
着信呼の通知 10(Notification.Looping.Call10), %SystemRoot%\media\Ring10.wav
着信呼の通知 2(Notification.Looping.Call2), %SystemRoot%\media\Ring02.wav
着信呼の通知 3(Notification.Looping.Call3), %SystemRoot%\media\Ring03.wav
着信呼の通知 4(Notification.Looping.Call4), %SystemRoot%\media\Ring04.wav
着信呼の通知 5(Notification.Looping.Call5), %SystemRoot%\media\Ring05.wav
着信呼の通知 6(Notification.Looping.Call6), %SystemRoot%\media\Ring06.wav
着信呼の通知 7(Notification.Looping.Call7), %SystemRoot%\media\Ring07.wav
着信呼の通知 8(Notification.Looping.Call8), %SystemRoot%\media\Ring08.wav
着信呼の通知 9(Notification.Looping.Call9), %SystemRoot%\media\Ring09.wav
新着メールの通知(Notification.Mail), %SystemRoot%\media\Windows Notify Email.wav
NFP 完了(Notification.Proximity), %SystemRoot%\media\Windows Proximity Notification.wav
予定表のアラーム(Notification.Reminder), %SystemRoot%\media\Windows Notify Calendar.wav
新着テキスト メッセージの通知(Notification.SMS), %SystemRoot%\media\Windows Notify Messaging.wav
プログラムの起動(Open),
不明瞭解消パネル(PanelSound)
印刷完了(PrintComplete),
NFP 接続(ProximityConnection), %SystemRoot%\media\Windows Proximity Connection.wav
元に戻す (縮小)(RestoreDown),
元に戻す (拡大)(RestoreUp),
検索プロバイダーの発見(SearchProviderDiscovered)
情報バー(SecurityBand)
ツール バー バンドの表示(ShowBand),
メッセージ (情報)(SystemAsterisk), C:\windows\media\Windows Error.wav
メッセージ (警告)(SystemExclamation), C:\windows\media\Windows Exclamation.wav
Windows の終了(SystemExit), C:\windows\media\Windows Shutdown.wav
システム エラー(SystemHand), C:\windows\media\Windows Critical Stop.wav
システム通知(SystemNotification), C:\windows\media\Windows Balloon.wav
メッセージ (問い合わせ)(SystemQuestion),
Bell(VNCviewerBell)
Breakpoint Hit(VS_BreakpointHit)
ビルドが取り消されました(VS_BuildCanceled)
ビルド失敗(VS_BuildFailed)
ビルド正常終了(VS_BuildSucceeded)
Windows ログオフ(WindowsLogoff), C:\windows\media\Windows Logoff Sound.wav
Windows ログオン(WindowsLogon), %SystemRoot%\media\Windows Logon.wav
Windows ユーザー アカウント制御(WindowsUAC), C:\windows\media\Windows User Account Control.wav
Windows のロック解除(WindowsUnlock), %SystemRoot%\media\Windows Unlock.wav
同期フラグ
音声ファイルが終了してから処理を進める場合はTrueを指定します。
SOUND("D:\Music\sample.mp3", TRUE)
FOR i = 1 TO 100
FUKIDASI(i)
SLEEP(0.100)
NEXT
同期フラグにFalseを指定すると音声を再生してから終了を待たずに次の処理に進み、処理が終わると音声が止まります。
SOUND("D:\Music\sample.mp3", FALSE)
SLEEP(3.000)
音声を繰り返し流す
スレッドを使いメインルーチンと別に音声を流す処理を組み込みます。
THREAD musicPlay("D:\Music\sound.mp3", 100)
FOR i = 1 TO 100
FUKIDASI(i)
SLEEP(0.100)
NEXT
//////////////////////////////////////////////////
// 【引数】
// path:再生する音声ファイルのパス、times:繰り返す回数
// 【戻り値】
//
//////////////////////////////////////////////////
PROCEDURE musicPlay(path, times)
FOR i = 1 TO times
SOUND(path, TRUE)
NEXT
FEND
メインルーチンが終わるまで音声を流し続けるにはSOUND関数をWHILE文で無限ループにします。
THREAD musicPlay("D:\Music\sound.mp3")
FOR i = 1 TO 100
FUKIDASI(i)
SLEEP(0.100)
NEXT
PROCEDURE musicPlay(path)
WHILE TRUE
SOUND(path, TRUE)
WEND
FEND
WAV出力先取得
タスクトレイのスピーカーを右クリック、[サウンドの設定を開く]、右側の関連設定から[サウンド コントロールパネル]で再生デバイスとサウンドが出力されているデバイスを確認することができます。アイコンにチェックマークが入っていて[既定のデバイス]と表示されているものが0を指定したときのデフォルトの出力先となります。
サウンドが再生されているときは以下のように緑色のバーが動くので再生デバイスの確認をすることができます。
使い方
絶対パスで指定
D:\Desktop\sample.wavのWAVファイルを再生します。
SOUND("D:\Desktop\sample.wav", TRUE)
環境変数を含むパスの指定
環境変数を含むパス文字列を指定することもできます。以下は%SystemRoot%\media\Alarm01.wavのサウンドを再生します。
SOUND("%SystemRoot%\media\Alarm01.wav", TRUE)
プログラム実行例
Windows通知のwavファイルを再生する
C:\Windows\Media\Windows Notify.wavを再生します。
SOUND("C:\Windows\Media\Windows Notify.wav", TRUE)
フォルダ内の音声ファイルをすべて再生
HASHTBL iColumn
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace("C:\Windows\Media")
FOR i = 0 TO 350
iColumn[Folder.GetDetailsOf(EMPTYPARAM, i)] = i
NEXT
DIM FolderItems = Folder.Items
DIM extensions[] = ".wav", ".mid", ".avi", ".mp3"
FOR FolderItem IN FolderItems
DIM path = FolderItem.Path
IF inArray(Folder.GetDetailsOf(FolderItem, iColumn["ファイル拡張子"]), extensions) = FALSE THEN CONTINUE
FUKIDASI(path)
SOUND(path, TRUE)
NEXT
指定フォルダ内の曲をトラック番号順で再生
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM folderspec = "F:\Music\sample"
DIM Folder = Shell.NameSpace(folderspec)
DIM FolderItems = Folder.Items
HASHTBL iColumn
FOR i = 0 TO 350
iColumn[Folder.GetDetailsOf(EMPTYPARAM, i)] = i
NEXT
DIM filename[-1]
DIM track[-1]
FOR i = 0 TO FolderItems.Count - 1
DIM FolderItem = FolderItems.Item(i)
IF FolderItem.isFolder THEN CONTINUE
IF Folder.GetDetailsOf(FolderItem, iColumn["ファイル拡張子"]) <> ".wav" THEN CONTINUE
arrayPush(filename, Folder.GetDetailsOf(FolderItem,iColumn["名前"]))
arrayPush(track, Folder.GetDetailsOf(FolderItem, iColumn["トラック番号"]))
NEXT
QSORT(track, QSRT_NATURALA, filename)
FOR i = 0 TO UBound(filename)
DIM path = folderspec + "\" + filename[i]
FUKIDASI(filename[i])
SOUND(path, TRUE)
NEXT
BEEP音を鳴らす
SOUND("BEEP")