Files
2026-08-27 11:22:34 -06:00

84 lines
3.3 KiB
VB.net

Imports System.Threading
Public Class VoiceChat
Public C As Client
Public MICR As Boolean
Public sourcestream As NAudio.Wave.WaveInEvent = Nothing
Public Function VoiceStop()
Try
MICR = False
If sourcestream IsNot Nothing Then
sourcestream.StopRecording()
sourcestream.Dispose()
sourcestream = Nothing
End If
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
End Function
Public Sub audioDataAvailable(ByVal sender As Object, ByVal e As NAudio.Wave.WaveInEventArgs)
Try
If MICR = True Then
Dim B As Byte() = SB("VOICEWAV" & SettingsHelper.SPL & Convert.ToBase64String(Compress(e.Buffer)) & SettingsHelper.SPL & e.BytesRecorded & SettingsHelper.SPL)
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf C.BeginSend), B)
ToolStripStatusLabel1.Text = "Size : " & " [" & BytesToString(B.LongLength) & "]"
End If
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Try
If Not C.IsConnected Then
Close()
End If
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
End Sub
Private Sub VoiceChat_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Dim B As Byte() = SB("ENDVOICE")
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf C.BeginSend), B)
VoiceStop()
End Sub
Private Sub Guna2GradientButton1_Click(sender As Object, e As EventArgs) Handles Guna2GradientButton1.Click
Try
If Guna2GradientButton1.Text = "Start" Then
sourcestream = New NAudio.Wave.WaveInEvent()
sourcestream.DeviceNumber = Convert.ToInt32(Guna2ComboBox1.SelectedIndex)
sourcestream.NumberOfBuffers = 1
sourcestream.BufferMilliseconds = 500
sourcestream.NumberOfBuffers = 5
sourcestream.WaveFormat = New NAudio.Wave.WaveFormat(8000, 16, 1)
AddHandler sourcestream.DataAvailable, New EventHandler(Of NAudio.Wave.WaveInEventArgs)(AddressOf audioDataAvailable)
sourcestream.StartRecording()
MICR = True
Guna2GradientButton1.Text = "Stop"
Guna2GradientButton1.Image = My.Resources._Stop
PictureBox1.Enabled = True
Else
VoiceStop()
Guna2GradientButton1.Text = "Start"
Guna2GradientButton1.Image = My.Resources.Play
PictureBox1.Enabled = False
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub Guna2ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Guna2ComboBox1.SelectedIndexChanged
VoiceStop()
Guna2GradientButton1.Text = "Start"
Guna2GradientButton1.Image = My.Resources.Play
PictureBox1.Enabled = False
End Sub
End Class