برای مشاهده روند ساخت پروژه ها و محصولات به کانال تلگرام ما بپیوندید           
  خانه محصولات دانلود پروژه ها بحث و گفتگو وبلاگ آموزشها و مقالات تماس با ما  

  فروم khazama.com --> زبانهای برنامه نویسی --> API ضبط صدا

  شنبه 21 ارديبهشت 87 , 7:03 PM


کاربر
homan
تعداد پستها : 10
API ضبط صدا

سلام آقا بهزاد.



می خاستم یه API به من معرفی کنید که صدا رو از ورودی بگیره و ذخیره کنه



ممنون



یا علی


**  آخرین ویرایش در  شنبه 21 ارديبهشت 87 - 9:55 PM

  شنبه 21 ارديبهشت 87 , 9:49 PM


مدیر سایت
behzad
تعداد پستها : 905
درود
توی وی بی یک کلاس به نام clsWav ایجاد کنید و کد زیر رو توش Paste کنید
.


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
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
Public Enum MyState
Idle
Recording
Paused
End Enum
Private xState As MyState

Public Function GetShortPath(strFileName As String) As String
Dim lngRes As Long, strPath As String
strPath = String$(165, 0)
lngRes = GetShortPathName(strFileName, strPath, 164)
GetShortPath = Left$(strPath, lngRes)
End Function

Public Property Get FileName() As String
FileName = fName
End Property

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

Public Function StartPlay() As Boolean
mciSendString "close myplay", 0, 0, 0
mciSendString "open " & fName & " type waveaudio alias myplay", 0, 0, 0
mciSendString "play myplay", 0, 0, 0
End Function
Public Function StopPlay() As Boolean
mciSendString "close myplay", 0, 0, 0
End Function

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$(128)
i = mciSendString("open new type waveaudio alias capture", RS, 128, cb)
i = mciSendString("set capture bitspersample 16 channels 1 samplespersec 8000 BYTESPERSEC 16000 alignment 2", RS, 128, cb)
i = mciSendString("Record Capture", RS, 128, 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$(128)

i = mciSendString("save capture " & fName, RS, 128, cb)
i = mciSendString("close capture", RS, 128, cb)
xState = Idle
StopRecord = True
Exit Function
eR:
i = mciSendString("close capture", RS, 128, 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$(128)
If xState = Paused Then
i = mciSendString("record capture", RS, 128, cb)
xState = Recording
ElseIf xState = Recording Then
i = mciSendString("pause capture", RS, 128, cb)
xState = Paused
End If
PauseRecord = True
Exit Function
eR:
PauseRecord = False
End Function


Public Property Get State() As MyState
State = xState
End Property


توی فرم اصلی برنامه (بالای همه
کدها به صورت عمومی در کل فرم اصلی) یک کلاس جدید از این کلاس ایجاد
کنید



Dim cWav As New clsWav


حالا براي ركورد توی فرم اصلی برنامه





cWav.FileName = "c:\test.wav"
cWav.StartRecord



_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  يكشنبه 22 ارديبهشت 87 , 11:05 AM


کاربر
homan
تعداد پستها : 10
تشکر

آقا بهزاد خیلی ممنون از شما


  سه‌شنبه 24 ارديبهشت 87 , 12:30 PM


کاربر
homan
تعداد پستها : 10
نمودار صدا

آقا بهزاد اگر حالا بخوام هنگام ضبط صدا اونو رو نمودار ثبت کنه باید چکار کنم


آیا اصلاً همچین امکانی وجود داره؟


 


متشکرم


  جمعه 27 ارديبهشت 87 , 11:45 AM


مدیر سایت
behzad
تعداد پستها : 905
آره میشه
باید مسقیما با API های مربوطش از روی کارت صدا بخونید
سورس کد برای اینکار هم زیاد دیدم
حتی میشه راحت باهاش یه اوسیاوسکپ بسازید که از روی کارت صدا بخونه
یه سری به سایت PSC نمونه های مختلفی من دیدم

_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  پنج‌شنبه 2 خرداد 87 , 9:53 AM


کاربر
homan
تعداد پستها : 10
تشکر

خیلی ممنون

  صفحه : [1]    
 
 


Designer And Programmer : Behzad khazama
Coded With ASP.NET
تمامي حقوق مادي و معنوي مطالب متعلق به اين سايت ميباشد .
هر گونه استفاده از مطالب اين سايت تنها با ذکر منبع بلامانع ميباشد
.
www.khazama.com
Tel : 051-44641597 - 09363677001 - 09155714862
Support SMS Center: 09363677100