Nachfolgende Klasse stellt alle Funktionen zur Sound-Aufnahme am angeschlossenen Mikrofon, sowie eine Abspiel-Funktion zur Verfügung. Option Strict On Public Class clsAufnahme Private Declare Function mciSendString Lib "winmm.dll" _ Alias "mciSendStringA" ( _ ByVal Command As String, _ ByVal ReturnString As String, _ ByVal ReturnLenght As Integer, _ ByVal Callback As Integer) As Long Private rs As String Private cb As String Private m_Pfad As String Private m_Alias As String = "aufnahme" Public Event Aufnahme_Gestartet() Public Event Aufnahme_Beendet() Public Event Aufnahme_Abspielen() Public Event Aufnahme_Fehler(ByVal msg As String) Public Sub New(ByVal sPfad As String, ByVal sAlias As String) Pfad = sPfad Me.Alias = sAlias End Sub Public Property Pfad() As String Get Return m_Pfad End Get Set(ByVal Value As String) m_Pfad = Value End Set End Property Public Property [Alias]() As String Get Return m_Alias End Get Set(ByVal Value As String) m_Alias = Value End Set End Property Public Sub Starten() Try rs = New String(CChar(" "), 128) mciSendString("Open New Type waveaudio Alias " & m_Alias, rs, 128, CInt(cb)) mciSendString("record " & m_Alias, rs, 128, CInt(cb)) Catch ex As Exception RaiseEvent Aufnahme_Fehler(ex.Message) Exit Sub End Try RaiseEvent Aufnahme_Gestartet() End Sub Public Sub Beenden() Try mciSendString("Stop " & m_Alias, rs, 128, CInt(cb)) mciSendString("save " & m_Alias & " " & m_Pfad, rs, 128, CInt(cb)) mciSendString("Close " & m_Alias, rs, 128, CInt(cb)) Catch ex As Exception RaiseEvent Aufnahme_Fehler(ex.Message) Exit Sub End Try RaiseEvent Aufnahme_Beendet() End Sub Public Sub Abspielen() Try My.Computer.Audio.Play(Pfad, AudioPlayMode.Background) Catch ex As Exception RaiseEvent Aufnahme_Fehler(ex.Message) Exit Sub End Try RaiseEvent Aufnahme_Abspielen() End Sub End Class Beispiel
Public Class Form1 Private Recording As Boolean = False Private WaveFile As String Private WithEvents Aufnahme As clsAufnahme Public Function FileExists(ByVal sFile As String) As Boolean ' Prüft, ob die angegeben Datei existiert Return (System.IO.File.Exists(sFile)) End Function Private Sub ButtonUpdate() Button1.Enabled = Not Recording Button2.Enabled = Recording Button3.Enabled = Recording = False AndAlso FileExists(WaveFile) = True End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load WaveFile = Application.StartupPath If Not WaveFile.EndsWith("\") Then WaveFile &= "\" WaveFile &= "test.wav" Aufnahme = New clsAufnahme(WaveFile, "Test") ButtonUpdate() End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Aufnahme.Starten() End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Aufnahme.Beenden() End Sub Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click Aufnahme.Abspielen() End Sub Private Sub Aufnahme_Aufnahme_Abspielen() Handles Aufnahme.Aufnahme_Abspielen ButtonUpdate() End Sub Private Sub Aufnahme_Aufnahme_Beendet() Handles Aufnahme.Aufnahme_Beendet Recording = False ButtonUpdate() End Sub Private Sub Aufnahme_Aufnahme_Fehler(ByVal msg As String) _ Handles Aufnahme.Aufnahme_Fehler Recording = False ButtonUpdate() End Sub Private Sub Aufnahme_Aufnahme_Gestartet() Handles Aufnahme.Aufnahme_Gestartet Recording = True ButtonUpdate() End Sub End Class Dieser Tipp wurde bereits 7.832 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |