1. Ana Sayfa
  2. Mobil Yazılım
  3. Coding4Fun Toolkit Kullanarak Ses Kaydı Yapan Mikrofon Uygulaması Yapmak

Coding4Fun Toolkit Kullanarak Ses Kaydı Yapan Mikrofon Uygulaması Yapmak

Bu yazımda sizlere toolkit kullanarak ses kaydı yapan bir uygulama nasıl yapılır adım adım anlatmaya çalışacağım. Yazının sonunda bir ses kaydı uygulamamız olacak 🙂

File- New- Project’ten yeni bir projesi açarak başlayalım. Codng4Fun toolkit kullanacağımız için projemize ekleyelim;


Resim-1


Resim-2

Toolkitimizi yükledikten sonra References aşağıdaki gibi olmalı;


Resim-3

Şimdi arayüze bir resim, kayıt için bir toggle buton ve oynat için bir buton ekleyeceğim. Toggle Buton; checked ve unchecked olmak üzere 2 tane event handler’a sahip. Kayıt için en mantıklı tercih toggle buton olacaktır. İlk tıkladığımızda checked handler’ı ikinci tıklamamızda ise unchecked handler’ı çalışacak.


Resim-4


Resim-5

Benim kullanacağım arayüz aşağıdaki gibi;


Resim-6

ToggleButton’ın Checked ve Unchecked’lerine isim verelim ve kodlamaya geçelim;


Resim-7

MainPage.xaml.cs içinde MicrophoneRecorder’ın private instance’ını oluşturuyoruz. MicrophoneRecorder kullanabilmemiz için üstüne gelip şekildeki gibi using Coding4Fun.Toolkit.Audio eklememiz gerekiyor;


Resim-8

Bunu yaptıktan sonra Toggle Butonun Checked event handler’ında _recorder.Start(), Unchecked event handler’ında ise _recorder.Stop() metodlarını kullanabiliriz;


Resim-9

Biz kayıt işlemi yaparken MicrophoneRecorder nesnesi ses bilgilerini buffer’da toplar. Stop() metodunu çağırdığımız anda MicrophoneRecorder, toplama işlemini sonlandırır. Bizim yapmamız gereken şey ise bufferda duran o ses bilgilerini .wav formatına çevirip saklamak. .wav olarak sakladıktan sonra, MediaElement kullanarak o kaydettiğimiz .wav dosyasını rahatlıkla oynatabiliriz.

MicrophoneRecorder, MemoryStream nesnesinde bufferda ses bilgilerimizi tutuyor, IsolatedStorage kullanarak MemoryStreamdeki bilgileri kaydedeceğim. Bunun için SaveTempAudio isminde bir metod oluşturup parametre olarak MemoryStream türünden bir nesne alıyorum ve kayıt işlemine başlıyorum;


Resim-10


Resim-11


Resim-12

Evet, coding4fun toolkitinin bize sunduğu kolaylıklardan biri de yukarıdaki GetWavAsByteArray metodu 🙂 Bu metod sayesinde rate bilgisini wav dosyasına tek satırlık kodla çevirebiliyoruz.. Bunun çalışabilmesi için aşağıdaki gibi using Coding4Fun.Toolkit.Audio.Helpers; eklemeniz gerekiyor. Kayıt işlemi için hazırladığımız metodu, _recorder.Stop() ‘ın hemen altına ekliyoruz. Böylece ses kayıt işlemi biter bitmez, ses dosyamızı, oluşturduğumuz SaveTempAudio metodu sayesinde bufferdan alıp wav dosyası şeklinde kaydediyoruz.


Resim-13

Ses kaydı işlemimiz bitti, şimdi bunu oynatmak için oynat butonumuzu kodlayacağız ama bunun öncesinde MainPage.xaml ‘de ContentPanel içine bir MediaElement ekliyoruz sonrasında SaveTempAudio metodunun içinde setsource yaparak hangi dosyayı çalacağını set ediyoruz;


Resim-14


Resim-15

Şimdi oynat butonumuza Click event handler verelim ve AudioPlayer’ımızı oynatalım.


Resim-16


Resim-17

İşlemimiz bu kadar. Fakat bu halde debug etmeye çalışırsanız hata yiyeceksiniz. Sebebi capabilities’ten microphone’nun seçilmemiş olması. WMAppManifest.xml – Capabilities ‘ten ID_CAP_MICROPHONE seçili duruma getirdiğiniz takdirde hatadan kurtulacaksınız;


Resim-18


Resim-19

Uygulamayı çalıştırdığınızda ses kaydını sorunsuz yaptığını göreceksiniz. Fakat ses kaydı yapmadan önce bir mikrofonunuz olduğundan emin olun 🙂


Resim-20

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

 

Yorum Yap

Yazar Hakkında

Maltepe Üniversitesi Yazılım Mühendisliği öğrencisiyim. Okul dışında Microsoft teknolojilerine ilgimden dolayı kendimi bu alanda geliştiriyorum. İlgi alanım Windows Phone ve Windows 8 başta olmak üzere Microsoft teknolojileri.

Yorum Yap

Yorumlar (1)

  1. Taner hoşgeldin aramıza 🙂 yazılım bölümünde senden ve Gökberk’ten showlar bekliyorum 🙂