• 12-02-2014, 02:23:27
    #1
    Merhaba;

    winmm.dll dosyasını kullanarak mikrofon ve hoparlör aygıtını ComboBox ta gösterip seçmek ve bunları TrackBar veya ComboBox ile ses değerlerini değiştirmek istiyorum. Birsürü kaynak kurcaladım fakat sonuca ulaşamadım.
    Ekran Görüntüsü

    Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Integer) As Integer
        Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
        Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
    
        Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByVal dwVolume As Integer) As Integer
        Declare Function waveOutGetVolume Lib "winmm.dll" Alias "waveOutGetVolume" (ByVal wDeviceID As Integer, ByRef lpdwvolume As Integer) As Integer
      
        Declare Function waveOutGetNumDevs Lib "winmm.dll" () As Long 'ses kartı bilgisi
    
        Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal hmxobj As IntPtr, ByVal pmxcd As AudioMixerHelper.MIXERCONTROLDETAILS, ByVal fdwDetails As Integer) As Integer
      
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            sesaygitlariniyukle()
            Label2.Text = "Ses Kartı :" & seskartivarmi()
    
    
        End Sub
        Function seskartivarmi() As Boolean
            Dim rtn As Long
            rtn = waveOutGetNumDevs() 'ses kartı var mı diye kontrol et. True/False Değeri Veriyor.
            seskartivarmi = rtn > 0
        End Function
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Button1.Enabled = False
            Button2.Enabled = True
            mciSendString("open new Type waveaudio Alias recsound", "", 0, 0)
            mciSendString("record recsound", "", 0, 0)
            Label1.Text = "Kaydediliyor.."
            Label1.Visible = True
    
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Button1.Enabled = True
            Button2.Enabled = False
            Button3.Enabled = True
            mciSendString("save recsound recsound.wav", "", 0, 0)
            mciSendString("close recsound", "", 0, 0)
            MsgBox("Dosya Oluşturuldu: recsound.wav")
            Label1.Text = "Durduruluyor.."
            Label1.Visible = False
            My.Computer.Audio.Stop()
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Label1.Text = "Oynatılıyor.."
            Label1.Visible = True
            My.Computer.Audio.Play("recsound.wav", AudioPlayMode.Background)
    
        End Sub
    
        Private Sub sesaygitlariniyukle()
    
        End Sub
    Cevaplarınız için şimdiden teşekkürler.
  • 12-02-2014, 11:44:55
    #2
    hocam neden vb de yazıyorsun ?
  • 12-02-2014, 12:42:05
    #3
    vb.net daha cazip geldiği için o dili düşünüyorum.