hi leute, ich versuche gerade, meinen computer als megafon zu verwenden. dazu möchte ich den Ton den ich ins Mikro reinspreche sofort, synchron, echtzeit wiedergeben in den boxen.
für c++ und so findet man ja genug code, aber für vb .net hab ich da so meine probleme. nach langer suche habe ihc folgenden code im internet gefunden, um den audioeingang (mikrofon) aufzunehmen:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" ( _
ByVal Command As String, _
ByVal ReturnString As String, ByVal ReturnLength As Integer, ByVal Callback _
As Integer) As Integer
Dim Path As String = "Test.wav"
Dim rs As String
Dim cb As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
If Button1.Text = "Record" Then
Button1.Text = "Stop"
Button2.Enabled = False
rs = New String(" ", 128)
Call mciSendString("Open New Type waveaudio Alias capture", rs, _
128, cb)
Call mciSendString("record capture", rs, 128, cb)
Else
Button1.Text = "Record"
Button2.Enabled = True
Call mciSendString("Stop capture", rs, 128, cb)
Call mciSendString("save capture " & Path, rs, 128, cb)
Call mciSendString("Close capture", rs, 128, cb)
End If
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As _
System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
Call beenden()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Button1.Text = "Record"
Button2.Text = "Play"
Button2.Enabled = False
End Sub
Public Sub beenden()
Dim antw As String
If Button1.Text = "Stop" Then
antw = MsgBox("Achtung, eine Aufnahme läuft noch!" & Chr(13) & _
"Wollen Sie wirklich beenden?", MsgBoxStyle.Exclamation Or _
MsgBoxStyle.YesNo, "Aufnahme")
If antw = vbYes Then
End
End If
Else
End
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button2.Click
My.Computer.Audio.Play(Path, AudioPlayMode.Background)
Button1.Enabled = True
End Sub in der form funktioniert das programm ja wunderbar, allerdings wollte ich fragen, ob es möglich ist, diese datei die hier generiert wird gleich als stream zu verwenden? ungefähr so hab ich mir das vorgestellt:
Imports System.Media
rivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
With oPlayer
.Stream = ' Hier das Stream-Elemnt
.Play()
End With
End Sub ich hoffe ihr könnt mir helfen, ich verwende Visual Basic 2005 Express
mfg disconnect
Gehe immer vom Guten Willen Anderer aus! |