【音声を扱うプログラム】
あらかじめサウンドレコーダーを使って松尾芭蕉を紹介するwaveファイルを作成しておき、VisualBasicのプログラムでスピーカーから音声を流す。
ポイントは Windows API である
Private Declare Function sndPlaySound Lib "winmm.dll"
Alias "sndPlaySoundA " (ByVal lpszSoundName As String,
ByVal uFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_MEMORY = &H4
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10
Private Declare Function waveOutSetVolume Lib "winmm.dll"
(ByVal udeviceid As Long, ByVal dwVolume As Long) As Long
の部分と、使用するときの
throw& = waveOutSetVolume(0, &HF000& + &HF0000000)
throw& = sndPlaySound(fname, SND_SYNC)
throw& = sndPlaySound("Exit", SND_SYNC)
の部分である。
1.素材の作成
次のような朗読音声をwave形式で作成しておく。
basho.wav
なお、"\\SKALA\教材提示ELEVATO\石山 謙\石山研究室(hyosiから開く)\"
の中にサンプルがあるので、今回はそれを使用する。
2.インターフェイスの作成
(1)コマンドボタンを2つ配置する。
(2)タイマーを1つ配置する。
3.プロパティの設定
オブジェクトの種類 | プロパティ名を探す | 次のように設定する | |
コマンドボタン | Command1 | Caption | クリックすると松尾芭蕉についての朗読が 流れます(waveサウンド) |
Command2 | Caption | 終了 | |
タイマー | Timer1 | interval | 100 |
4.コードの記述
[プログラム全文]
Private Declare Function sndPlaySound Lib "winmm.dll"
Alias "sndPlaySoundA " (ByVal lpszSoundName As String,
ByVal uFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_MEMORY = &H4
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10
Private Declare Function waveOutSetVolume Lib "winmm.dll"
(ByVal udeviceid As Long, ByVal dwVolume As Long) As Long
Dim fname As String
Private Sub command1_click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
fname = "f:\石山研究室(hyosiから開く)\basho.wav"
'↑は実習では、
'"\\SKALA\教材提示ELEVATO\石山 謙\石山研究室(hyosiから開く)\basho.wav"
'と記載する。
Timer1.Interval = 100
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
throw& = waveOutSetVolume(0, &HF000& + &HF0000000)
throw& = sndPlaySound(fname, SND_SYNC)
throw& = sndPlaySound("Exit", SND_SYNC)
End Sub
5.実行
6.保存
フォーム、プロジェクトともに reading という名前で保存する。