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.853 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. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |