vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Multimedia & Sound · Audio   |   VB-Versionen: VB2005, VB200813.07.09
WAVE-Dateien aufnehmen

Ein Code-Ausschnitt, mit dem sich WAVE-Dateien in verschiedenen Aufnahmequalitäten aufnehmen lassen.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  11.256 
www.tools4vb.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Heute zeigen wir Ihnen, wie sich WAVE-Dateien in unterschiedlichen Qualitätsstufen aufnehmen lassen.

Von welchem Eingang der Soundkarte aufgenommen wird, richtet sich nach den Aufnahmeeinstellungen der Windows.Lautstärkeregelung.

' benötigte API-Deklaration
Private Declare Auto Function mciSendString Lib "winmm.dll" ( _
  ByVal lpstrCommand As String, _
  ByVal lpstrRetrunString As String, _
  ByVal dwReturnlength As Int16, _
  ByVal hCallback As Int16) As Integer
 
' Aufnahmeformate
Private Enum BitsPerSec
  Bits16 = 16
  Bits8 = 8
End Enum
 
Private Enum SampelsPerSec
  Sampels8000 = 8000
  Sampels11025 = 11025
  Sampels12000 = 12000
  Sampels16000 = 16000
  Sampels22050 = 22050
  Sampels24000 = 24000
  Sampels32000 = 32000
  Sampels44100 = 44100
  Sampels48000 = 48000
End Enum
 
Private Enum Channels
  Mono = 1
  Stereo = 2
End Enum
''' <summary>
''' Startet die WAVE-Aufnahme
''' </summary>
''' <param name="BitRate">Bits pro Sekunde</param>
''' <param name="SampleRate">Samples pro Sekunde</param>
''' <param name="Mode">Stereo oder Mono-Aufnahme</param>
Private Function WAVE_RecordStart(Optional ByVal BitRate As BitsPerSec = BitsPerSec.Bits16, _
  Optional ByVal SampleRate As SampelsPerSec = SampelsPerSec.Sampels11025, _
  Optional ByVal Mode As Channels = Channels.Stereo) As Boolean
 
  Dim sReturn As String = Strings.Space(256)
  Dim cmd As String
 
  cmd = "open new type waveaudio alias recwave"
  If mciSendString(cmd, sReturn, 256, 0) <> 0 Then
    MsgBox("Fehler beim Anlegen der neuen Aufnahmedatei!", MsgBoxStyle.Exclamation)
    Return (False)
  End If
 
  ' Aufnahmeformat
  Dim ByteRate As Integer = (Mode * BitRate * SampleRate) / 8
  mciSendString("set recwave time format milliseconds" & _
    " bitspersample " & CStr(BitRate) & _
    " samplespersec " & CStr(SampleRate) & _
    " channels " & CStr(Mode) & _
    " bytespersec " & CStr(ByteRate) & _
    " alignment 4", sReturn, 256, 0)
 
  cmd = "record recwave"
  If mciSendString(cmd, sReturn, 256, 0) <> 0 Then
    MsgBox("Fehler bei der Aufnahme!", MsgBoxStyle.Exclamation)
    Return (False)
  End If
 
  Return (True)
End Function
''' <summary>
''' Beendet die WAVE-Aufnahme
''' </summary>
''' <param name="Filename">Datei, unter der die Aufnahme gespeichert werden soll.</param>
Private Function WAVE_RecordStop(ByVal Filename As String) As Boolean
  Dim sReturn As String = Strings.Space(256)
  Dim cmd As String
  Dim Result As Boolean = True
 
  cmd = "stop recwave"
  If mciSendString(cmd, sReturn, 256, 0) <> 0 Then
    MsgBox("Fehler beim Beenden der Aufnahme!", MsgBoxStyle.Exclamation)
    Return (False)
  End If
 
  If Filename.Length > 0 Then
    ' Aufnhame in Datei speichern
    cmd = "save recwave " & Filename
    If mciSendString(cmd, sReturn, 256, 0) <> 0 Then
      MsgBox("Fehler beim Speichern der Aufnahme.", MsgBoxStyle.Exclamation)
      Result = False
    End If
  End If
 
  cmd = "close recwave"
  If mciSendString(cmd, sReturn, 256, 0) <> 0 Then
    MsgBox("Fehler beim Schließen der Aufnahme...", MsgBoxStyle.Exclamation)
  End If
 
  Return (Result)
End Function

Dieser Tipp wurde bereits 11.256 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel