Türkiye Finans Bankası bünyesinde düzenli olarak Sefertası Etkinlikleri organize ediliyor. Ben de 09 Mart 2016 tarihinde gerçekleşen etkinlik bünyesinde Azure ve Bulut Bilişim konulu oturum gerçekleştirdim.
Etkinliği organize eden ve beni davet eden sevgili Ünsal Atasoy arkadaşıma ve katılan herkese teşekkür ederim.
Uygulamalarımıza TTS (text-to-speech, yani yazıdan-sese) özelliği ekleyerek belirlediğimiz metinlerin sese dönüştürülmesini sağlayabiliriz.
Windows 8.1 ve Windows Phone 8.1 zamanından beri kullanımımıza açık olan SpeechSynthesis namespace‘i aracılığıyla uygulamamıza TTS desteği ekleyebiliriz.
Hemen yeni bir proje oluşturarak kodlamaya başlayalım;
MainPage.xaml dosyasını açarak sese dönüştürmek istediğimiz metni yazabileceğimiz bir TextBox, bir de Button nesnesi ekleyelim.
Bir metnin sese dönüştürülerek okunması için uygulamamıza ses dosyalarını oynatabilecek bir nesne eklememiz yeterlidir. Bunu için MainPage.xaml dosyasına bir tane de MediaElement nesnesi ekleyelim.
Böylece uygulamanın başlangıç ekranı aşağıdaki gibi gözükmeli;
MainPage.xaml.cs dosyasında Button_Click() methodu aracılığıyla, butona tıklandığında yapılacak işleri yazıyoruz;
Bu methodun içerisinde öncelikle SpeechSynthesizer sınıfından yeni bir değişken oluşturduk.
SynthesizeTextToStreamAsync() methoduna okunmasını istediğimiz metni string tipinde parametre olarak verdik ve geri dönen SpeechSynthesisStream tipindeki cevabı bir değişkene atadık.
Son olarak, ekranda yeralan MediaElement nesnesinin SetSource() methoduna SpeechSynthesisStream tipindeki değişkenimizi parametre olarak vererek, oluşan sesin oynatılmasını sağladık.
Böylece, ekrandaki TextBox nesnesine yazılan cümle, Button nesnesine tıklandığında uygulama tarafından okunacak ve bizler de duyabileceğiz.
Bilmök, Bilgisayar Mühendisliği Öğrenci Kongresi anlamına geliyor. (Türkiye’nin en büyük öğrenci kongresi olarakta bilinir)
Her sene bir üniversitede düzenlenen bu etkinlik sadece Bilgisayar Mühendisliği öğrencilerine açık değil aslında. Bu sene Şanlıurfa‘da Harran Üniversitesinde 04 Mart 2016, 05 Mart 2016, 06 Mart 2016 tarihlerinde gerçekleşen etkinliğe meslek liseleri, ortaokullar, hatta ilkokullardan katılan öğrenciler oldu.
Ben de 06 Mart 2016 günü Unity3D ile Oyun Programlama konusunda hands-on (uygulamalı) oturum gerçekleştirdim.
Beni etkinliğe davet eden sevgili hocalarıma ve öğrenci arkadaşlarıma teşekkür ederim.
Bu makale’de ilginç bir uygulama yazarak, 10 adet resim ve 1 adet mp3 dosyasından 1 adet video üreteceğiz.
Aşağıdaki projeyi geliştirirken ihtiyacımız olacak örnek dosyaları aşağıda paylaşıyorum;
Hemen yeni bir Blank App (Universal Windows) proje oluşturalım;
MainPage.xaml dosyasını açalım içerisindeki kodları aşağıdaki şekilde güncelleyelim. Böylece ekranda bir Button nesnesi gözükecek, üzerine tıklandığında resim ve ses dosyaları kullanılarak bir video oluşturulacak, oluşturulan video dosyası Button‘un hemen altına eklediğimiz MediaElement nesnesinde oynatılacak.
MainPage.xaml.cs dosyasında Button_Click() methodunu oluşturmalıyız;
Yukarıdaki kod bloğunda öncelikle MediaComposition sınıfından yeni bir değişken oluşturuyoruz. Böylece istediğimiz kadar resim, ses veya video dosyasını bu composition değişkenine ekleyerek yeni bir video oluşturabileceğiz.
Package sınıfının InstalledLocation property‘sinden erişebildiğimiz GetFolderAsync() methodu ile projenin istediğim dizinine erişebiliyor, GetFilesAsync() methodunu kullanarak içindeki dosyaları elde edebiliyoruz.
MediaClip sınıfının static CreateFromImageFileAsync() methodunu kullanarak TimeSpan sınıfı aracılığıyla belirlediğimiz süre kadar videoda görüntülenecek resimleri composition değişkenine ekliyoruz.
BackgroundAudioTrack sınıfının static CreateFromFileAsync() methodunu kullanarak videonun arkaplan sesi olacak ses dosyalarını composition değişkenine ekliyoruz.
ApplicationData sınıfının LocalFolder property‘si aracılığı ile erişebildiğimiz CreateFileAsync() methodu aracılığıyla video.mp4 isimli dosyayı oluşturuyoruz, ikinci parametrede CreationCollisionOption.GenerateUniqueName değerini verdiğimiz için aynı isimli bir dosya zaten dizinde varsa dosyaya yeni bir isim verilecek.
MediaComposition sınıfının RenderToFileAsync() methodunu kullanarak, resim ve ses dosyaları eklediğim composition değişkeninden video oluşturuyoruz.
Ekranda yeralan MediaElement nesnesinin SetSource() methodunu kullanarak oluşturduğumuz video dosyasını yüklüyor, Play() methodunu kullanarak ekranda oynatmaya başlıyoruz.
Bu makalede verdiğim resim ve ses dosyalarını kullanarak oluşturulan videoyu aşağıda izleyebilirsiniz;
05 Mart 2016 tarihinde Ankara TOBB Üniversitesinde ETU ACM Topluluğu bir etkinlik organize etti.
Sevgili arkadaşım Bora Kaşmer ile katıldığım bu etkinlikte Windows 10 Universal Windows Platform Development ve Cross-Platform Application Development başlıklı oturumları gerçekleştirdim.
Beni bu etkinliğe davet eden sevgili MSP arkadaşım Bahadır Çolak‘a ve etkinliğe katılan tüm öğrenci arkadaşlarıma teşekkür ediyorum.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484