水曜日, 12月 14, 2022

Visual Studio Basic_31 
Soundデータの活用と組み込み

今回は[Visual Studio Basic_13]の中へ事前に用意したサウンドデータ(※)を組み込んでみます。
※ ok.wav(音声データ「合格です」)、ng.wav(音声データ「不合格です」)


まず、プロジェクトメニューのプロパティをクリックし、リソースパレットを表示します。

リソースパレットで[オーディオ]を設定して[既存のファイルの追加]にて、任意の場所にあるok.wavとng.wavを取り込みます。

コレでリソースとして取り込まれました。

で、実際のソースは・・・

「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。
(★)がVisual Studio Basic_13のソースに今回追加した部分です。
-----------------
Public Class Form1
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        ' TestResultをInteger変数宣言
        Dim TestResult As Integer
        ' VoiceOkはリソースok.wavでSystem.IO.Stream宣言(★)
        Dim VoiceOk As System.IO.Stream = My.Resources.ok
        ' VoiceNgはリソースng.wavでSystem.IO.Stream宣言(★)
        Dim VoiceNg As System.IO.Stream = My.Resources.ng
        ' TestResultに数値変換したTextBox1の値を入れる
        TestResult = Val(TextBox1.Text)
        ' 背景色は白、文字色は黒にリセット
        Label3.ForeColor = Color.Black
        Label3.BackColor = Color.White
        ' もしTestResultの値が80以上で、TextBox2がAであれば
        ' 背景色を赤、文字を白に変更して「合格です」を表示
        If TestResult >= 80 And TextBox2.Text = "A" Then
            Label3.BackColor = Color.Red
            Label3.ForeColor = Color.White
            Label3.Text = "合格です"
        ' 背景でVoiceOk(ok.wav)を再生(★)
        My.Computer.Audio.Play(VoiceOk, AudioPlayMode.Background)
        Else

        ' そうでなければ
        ' 背景色を青、文字を白に変更して「不合格です」を表示
            Label3.BackColor = Color.Blue
            Label3.ForeColor = Color.White
            Label3.Text = "不合格です"
        ' 背景でVoiceNg(ng.wav)を再生(★)
        My.Computer.Audio.Play(VoiceNg, AudioPlayMode.Background)
        End If
    End Sub
-----------------
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' プログラム終了
        End
    End Sub
-----------------
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        ' Label3とTextBox1,2をリセット(★)
        Label3.BackColor = Color.Empty
        Label3.ForeColor = Color.Empty
        TextBox1.ResetText()
        TextBox2.ResetText()
        Label3.ResetText()
    End Sub
End Class
----------------- 

コレで組み込まれた「合格」「不合格」の音声データが判定ボタンとともに再生されます。