1

Bu yazımda sizlere coding4fun 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 Windows Phone 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ı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

 

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

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.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (1)

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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir