PDA

View Full Version : ضبط صدا ؟



upload
شنبه 10 مهر 1389, 17:59 عصر
سلام:
برنامه ای نوشتم که نوشته های داخل یک تکست باکس رو می خونه حالا می خوام صداشو ضبط کنم ! از دستور زیر بزای خواندن نوشته های تکست باکس استفاده می کنم:


Dim sapi
Set sapi = CreateObject("sapi.spvoice")
sapi.Speak text1.textحالا اگه بخوام این صدا رو با فرمت های mp3 و wma ذخیره کنم باید چه کار کنم؟

returnx
شنبه 10 مهر 1389, 21:43 عصر
شما می تونید از کامپوننت Microsoft Multimedia Cntrol 6.0 استفاده کنید.

pcdownload.bloghaa.com
شنبه 10 مهر 1389, 22:02 عصر
برای ظبط صدا با فرمت wav:
در برنامت یک کلاس ایجاد کن و کد زیر را داخل آن کپی کن.

Private FName As String
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Public Enum MyState
Idle
Recording
Paused
End Enum
Private xState As MyState
Public Property Get FileName() As String
FileName = FName
End Property

Public Property Let FileName(ByVal sFileName As String)
FName = sFileName
End Property

Public Function StartRecord() As Boolean
On Error GoTo ER:
If FName = "" Then GoTo ER:
Dim RS As String, cb As Long, I As Long
RS = Space$(1024)
I = mciSendString("open new type waveaudio alias capture", RS, 1024, cb)
I = mciSendString("record capture", RS, 1024, cb)
xState = Recording
StartRecord = True
Exit Function
ER:
StartRecord = False
End Function

Public Function StopRecord() As Boolean
On Error GoTo ER:
If FName = "" Then GoTo ER:
Dim RS As String, cb As Long, I As Long
RS = Space$(1024)
I = mciSendString("save capture " & FName, RS, 1024, cb)
I = mciSendString("close capture", RS, 1024, cb)
xState = Idle
StopRecord = True
Exit Function
ER:
I = mciSendString("close capture", RS, 1024, cb)
StopRecord = False
End Function

Private Sub Class_Initialize()
xState = Idle
End Sub

Private Sub Class_Terminate()
StopRecord
End Sub

Public Function PauseRecord() As Boolean
On Error GoTo ER:
If FName = "" Then GoTo ER:
Dim RS As String, cb As Long, I As Long
RS = Space$(1024)
If xState = Paused Then
I = mciSendString("record capture", RS, 1024, cb)
xState = Recording
ElseIf xState = Recording Then
I = mciSendString("pause capture", RS, 1024, cb)
xState = Paused
End If
PauseRecord = True
Exit Function
ER:
PauseRecord = False
End Function
Public Property Get State() As MyState
State = xState
End Property





سپس دو تا کامند باتن با نام های cmdrec و cmdstoprec ایجاد کرده ودر قسمن جنرال کد زیر را وارد کن.


Dim SndRecorder As New Class1
Private Sub CmdRec_Click()
SndRecorder.StartRecord
CmdRec.Enabled = False
CmdStopRec.Enabled = True
End Sub
Private Sub CmdStopRec_Click()
SndRecorder.StopRecord
CmdRec.Enabled = True
CmdStopRec.Enabled = False
End Sub
Private Sub Form_Load()
SndRecorder.FileName = "C:\Sample.wav"
End Sub