Option Strict Off Option Explicit On Friend Class Form1 Inherits System.Windows.Forms.Form Private Sub cmdOpenFIle_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdOpenFIle.Click Dim Ofd As New OpenFileDialog() 'ファイルダイアログ With Ofd .Title = "サウンドファイルを選択" .InitialDirectory = My.Application.Info.DirectoryPath .Filter = "サウンドファイル(mp3,wav,wma,midi)|*.mp3;*.wav;*.wma;midi;*.gif;|すべてのファイル|*.*" .FilterIndex = 1 If .ShowDialog() = DialogResult.OK Then If Dir(.FileName) <> "" Then If .FileName <> "" And Dir(.FileName) <> "" Then txtFilePath.Text = .FileName SetEnabledButton(True) End If End If End If End With End Sub Private Sub cmdPlay_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdPlay.Click Dim NewLargeChange As Short ' 開始 OpenSound(txtFilePath.Text, SOUND_ALIAS) PlaySound(SOUND_ALIAS) With HSPosition .Maximum = (GetSoundLength(SOUND_ALIAS) + .LargeChange - 1) .Minimum = 0 .Value = 0 NewLargeChange = (.Maximum - .LargeChange + 1) / 10 .Maximum = .Maximum + NewLargeChange - .LargeChange .LargeChange = NewLargeChange .SmallChange = (.Maximum - .LargeChange + 1) / 100 End With SetSoundVolume(SOUND_ALIAS, GetSoundVolume(SOUND_ALIAS) / 2) lblVolume.Text = CStr(GetSoundVolume(SOUND_ALIAS)) Timer1.Enabled = True SetEnabledButton(False, True, True) End Sub Private Sub cmdStop_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdStop.Click ' 停止 StopSound(SOUND_ALIAS) CloseSound(SOUND_ALIAS) SetEnabledButton(True) Timer1.Enabled = False End Sub Private Sub cmdPause_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdPause.Click ' 一時停止 PauseSound(SOUND_ALIAS) SetEnabledButton(False, True, False, True) End Sub Private Sub cmdResume_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdResume.Click ' 再開 ResumeSound(SOUND_ALIAS) SetEnabledButton(False, True, True, False) End Sub Private Sub cmdVol_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdVol.Click Dim Index As Short = cmdVol.GetIndex(eventSender) '音量 Dim Vol As Double Vol = GetSoundVolume(SOUND_ALIAS) Vol = Vol + 50 * (-1) ^ Index If Vol < 0 Then Vol = 0 If Vol > 1000 Then Vol = 1000 SetSoundVolume(SOUND_ALIAS, Vol) lblVolume.Text = CStr(GetSoundVolume(SOUND_ALIAS)) End Sub Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load SetEnabledButton(False) End Sub Private Sub SetEnabledButton(ByRef blPlay As Boolean, Optional ByRef blStop As Boolean = False, Optional ByRef blPause As Boolean = False, Optional ByRef blResume As Boolean = False) ' ' コマンドボタンの有効/無効 ' cmdPlay.Enabled = blPlay cmdStop.Enabled = blStop cmdPause.Enabled = blPause cmdResume.Enabled = blResume End Sub Private Sub Form1_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed StopSound("all") CloseSound("all") End Sub Private Sub HSPosition_Change(ByVal newScrollValue As Integer) SetSoundPosition(SOUND_ALIAS, (newScrollValue)) End Sub Private Sub Timer1_Tick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Timer1.Tick HSPosition.Value = GetSoundPosition(SOUND_ALIAS) If HSPosition.Value = (HSPosition.Maximum - HSPosition.LargeChange + 1) Then cmdStop_Click(cmdStop, New System.EventArgs()) End Sub Private Sub HSPosition_Scroll(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.ScrollEventArgs) Handles HSPosition.Scroll Select Case eventArgs.type Case System.Windows.Forms.ScrollEventType.EndScroll HSPosition_Change(eventArgs.newValue) End Select End Sub End Class