Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
WaveProof - Form1.vb

Form1.vb

Caricato da: Totem
Scarica il programma completo

  1. Imports Microsoft.DirectX.AudioVideoPlayback
  2.  
  3. Public Class Form1
  4.     Private Wave As CWAVReader
  5.     Private StartTime As Date
  6.     Private File As String
  7.     Private Manager As WaveDataManager
  8.     Private Player As Audio
  9.  
  10.     Private Visualizer1 As WaveFormVisualizer
  11.     Private Visualizer2 As RectangleVisualizer
  12.     Private Visualizer3 As LoudnessVisualizer
  13.  
  14.     Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
  15.         Dim Open As New OpenFileDialog
  16.         Open.Filter = "Wave|*.wav"
  17.         If Open.ShowDialog = Windows.Forms.DialogResult.OK Then
  18.             Wave = Nothing
  19.             Manager = Nothing
  20.             Visualizer1 = Nothing
  21.  
  22.             Me.Enabled = False
  23.             lblStatus.Text = "Attendere, apertura in corso..."
  24.             Application.DoEvents()
  25.  
  26.             Wave = New CWAVReader(Open.FileName)
  27.             Manager = New WaveDataManager(Wave.GetSoundDataValue(), Wave.ByteRate)
  28.             Manager.CompressData(tmrRefresh.Interval / 1000)
  29.             picWave.Image = Manager.GetWaveForm(picWave.Width, picWave.Height)
  30.             picWave.Refresh()
  31.             File = Open.FileName
  32.  
  33.             If Player Is Nothing Then
  34.                 Player = New Audio(File)
  35.             Else
  36.                 Player.Open(File)
  37.             End If
  38.  
  39.             Me.Enabled = True
  40.             Application.DoEvents()
  41.             lblStatus.Text = "File aperto"
  42.  
  43.             GroupBox1.Enabled = True
  44.             btnPlay.Enabled = True
  45.             btnPause.Enabled = True
  46.             btnStop.Enabled = True
  47.         End If
  48.     End Sub
  49.  
  50.     Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click
  51.         If Manager Is Nothing Then
  52.             MessageBox.Show("Caricare un file prima di procedere!", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  53.             Exit Sub
  54.         End If
  55.  
  56.         If rbtWaveForm.Checked Then
  57.             If Visualizer1 Is Nothing Then
  58.                 Visualizer1 = New WaveFormVisualizer(Manager)
  59.             End If
  60.             Manager.Visualizer = Visualizer1
  61.         ElseIf rbtRectangles.Checked Then
  62.             If Visualizer2 Is Nothing Then
  63.                 Visualizer2 = New RectangleVisualizer(Manager)
  64.             End If
  65.             Manager.Visualizer = Visualizer2
  66.         ElseIf rbtLoudness.Checked Then
  67.             If Visualizer3 Is Nothing Then
  68.                 Visualizer3 = New LoudnessVisualizer(Manager)
  69.             End If
  70.             Manager.Visualizer = Visualizer3
  71.         End If
  72.  
  73.         Manager.Visualizer.ForeColor = lnkWaveColor.LinkColor
  74.         Manager.Visualizer.BackgroundColor = lnkBackColor.LinkColor
  75.  
  76.         Player.Play()
  77.         tmrRefresh.Start()
  78.     End Sub
  79.  
  80.     Private Sub tmrRefresh_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrRefresh.Tick
  81.         Dim TotalSeconds As Double = Player.CurrentPosition
  82.  
  83.         If Player.CurrentPosition = Player.Duration Then
  84.             tmrRefresh.Stop()
  85.         End If
  86.  
  87.         If TotalSeconds = 0 Then
  88.             Exit Sub
  89.         End If
  90.  
  91.         picWave.Image = Manager.Visualizer.Render(picWave.Width, picWave.Height, TotalSeconds - nudTimeWidth.Value / 1000, TotalSeconds)
  92.     End Sub
  93.  
  94.     Private Sub btnPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPause.Click
  95.         If Player IsNot Nothing Then
  96.             tmrRefresh.Stop()
  97.             Player.Pause()
  98.         End If
  99.     End Sub
  100.  
  101.     Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
  102.         If Player IsNot Nothing Then
  103.             tmrRefresh.Stop()
  104.             Player.Stop()
  105.         End If
  106.     End Sub
  107.  
  108.     Private Sub lnkWaveColor_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnkWaveColor.LinkClicked
  109.         If ColorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
  110.             lnkWaveColor.LinkColor = ColorDialog.Color
  111.             lnkWaveColor.BackColor = Color.FromArgb(255, Color.FromArgb(Not lnkWaveColor.LinkColor.ToArgb))
  112.         End If
  113.     End Sub
  114.  
  115.     Private Sub lnkBackColor_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnkBackColor.LinkClicked
  116.         If ColorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
  117.             lnkBackColor.LinkColor = ColorDialog.Color
  118.             lnkBackColor.BackColor = Color.FromArgb(255, Color.FromArgb(Not lnkBackColor.LinkColor.ToArgb))
  119.         End If
  120.     End Sub
  121.  
  122.     Private Sub picWave_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picWave.Resize
  123.         nudTimeWidth.Maximum = tmrRefresh.Interval * picWave.Width
  124.     End Sub
  125.  
  126.     Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
  127.         nudTimeWidth.Value = tmrRefresh.Interval * picWave.Width
  128.     End Sub
  129. End Class