SeekBar ile Ses Ayarı |
Android Programlama - 1
Günümüzde hemen hemen herkes akıllı telefona sahiptir. Peki sahip olduğumuz bu akıllı telefonların özelliklerinden kaç tanesini biliyoruz? Aslında bu sorunun cevabını çoğu akıllı telefon kullanıcısı biliyor. Fakat programcılar bu özellikleri nasıl uyguluyorlar ve akıllı telefonlar bu özelliğinin kullanıldığını nasıl anlıyor gibi soruların cevabını çok az kişi biliyor. Bu yazımızda akıllı telefonların özelliği olan bir bileşeni kullanacağız. "Telefonların ses ayarlama tuşuna basıldığında telefon bunu nasıl anlar?" , "Hangi komutlar devreye girer?" gibi soruların cevabını irdeleyeceğiz.
08.12.2014 tarihli yazı 12715 kez okunmuştur.
Artık günlük hayatta akıllı telefonlar her yerde görülmektedir ve bu telefonların media özelliği kullanılmaktadır. Bu yazımızda android telefonların bir özelliği olan SeekBar bileşenini kullanacağız. Herkes, akıllı telefonların müzik dinleme özelliğini kullanmaktadır. Müzik dinlerken sesin nasıl ayarlanacağı merak konusu olmuştur. Uyguladığımız projede bir tane "Button" ve bir tane "SeekBar" nesnesi olacaktır. Butona basıldığında müzik başlayacak ve SeekBar ile sesin nasıl ayarlanacağını göreceğiz.
Button ve SeekBar bileşenlerini attıktan sonra activity_main.xml içindeki görüntümüz Görsel 1' deki gibi şekil alacaktır.
Öncelikle "activity_main.xml" dosyasını açıklayalım. Sol taraftan bileşenlerin bulunduğu kısımdan Form Widgets içeriğini açıyoruz. Bu dosyanın içinden bir adet "Button" bir adet de "SeekBar" sürükleyip atıyoruz. Kırmızı daire içiresinden de anlaşılacığı gibi SeekBar nesnesinin görünümü, yatay ince bir çubuk üzerinde bir nokta şeklindedir. Bu işlemlerden sonra artık activity_main.xml içerisindeki yapacaklarımız bitmiş oluyor.
İkinci adım olarak yapacağımız işlem MainActivity.java sınıfının içerisine gerekli olan kodları yazmaktır.
İkinci adım olarak yapacağımız işlem MainActivity.java sınıfının içerisine gerekli olan kodları yazmaktır.
MainActivity.java sınıfının içeriğini inceleyecek olursak eğer, öncelikle eklediğimiz ve kullanacağımız aygıtların değişken isimlerinin yazıldığını görmüş oluruz. "activity_main.xml" içine yüklemiş olduğumuz SeekBar ve Button bileşenlerini sırasıyla "change" ve "play" olarak tanımladıktan sonra, media dosyaları için kullanacağımız aygıtların değişkenlerini tanıtırız. Bu projede müzik dosyasını oynatmat için MediaPlayer aygıtını , telefonun maximum ses seviyesine ya da o anda herhangi bir ses seviyesine ulaşmak için ise AudioManager aygıtını tanımlarız. Bu değişkenin isimleri sırasıyla "mediaPlayer" ve "manager" olarak tanımlarız. Adım adım bu değişkenleri nasıl kullanacağımıza ve nerede işimize yarayacağımızı incelersek;
►Butona tıkladığımızda media dosyamızın çalışmasını sağlayacağız.
►MediaPlayer ile ekleyeceğimiz media dosyasının tanımlanmasını ve oynatılmasını sağlayacağız.
►SeekBar ile müzik sesinin ayarlanmasını sağlayacağız.
►AudioManager uygulamamızın en önemli etmenidir. AudioManager ile oluşturduğumuz değişkenimize, telefonumuzda ki maximum ses seviyesini belirleyip bu seviyeyi SeekBar nesnesine atmayı sağlayacağız.
►Butona tıkladığımızda media dosyamızın çalışmasını sağlayacağız.
►MediaPlayer ile ekleyeceğimiz media dosyasının tanımlanmasını ve oynatılmasını sağlayacağız.
►SeekBar ile müzik sesinin ayarlanmasını sağlayacağız.
►AudioManager uygulamamızın en önemli etmenidir. AudioManager ile oluşturduğumuz değişkenimize, telefonumuzda ki maximum ses seviyesini belirleyip bu seviyeyi SeekBar nesnesine atmayı sağlayacağız.
Görsel 3: Değişken Tanımlamaları ve Butona Tıklama Özelliği
►İlginizi Çekebilir : İzolasyonlu Yıldırım İniş Teknikleri
Görsel 3'te görüldüğü gibi tanımları yaptıktan sonra bu değişkenleri kullanmaya artık hazır hale gelmiş olduk. İlk olarak eklediğimiz buton değişkenimize tıklama olayını ekledik. Projeye göre butona tıklandığında müziğin çalması gerektiğini belirtmiştik. Bu sebepten dolayı buton tıklama fonksiyonu olan "onClick()" fonksiyonun içine MediaPlayer'ı başlatma komutunu veriyoruz. Daha öncesinde yazdığımız "mediaPlayer=MediaPlayer.create(getApplicationContext(),R.raw.song)" kod satırında ise mediaPlayer nesnemize "song" isimli müziğimizi ekliyoruz. Müzik dosyalarını, projemizin bulunduğu yere gidip res dosyası içerisene bir "raw" isimli dosya oluşturup bu dosyanın içerisine atıyoruz. Bu satırları yazdıktan sonra artık butonumuza bastığımızda müziğimiz oynatılmaya başlanacaktır. Resimde görüldüğü gibi bir fonksiyon yazalım. Bu fonksiyonun ismini "setSeekBar" olarak ayarlayalım. Sonraki adım olarak "setSeekBar" fonksiyonunu inceleyelim.
Bu fonksiyonun amacı SeekBar olayını tanımlamak ve yapılan ses seviyesi değişikliğini ayarlamaktır. Görsel 4'teki kodları satır satır inceleyelim. İlk adımda "bar.setMax(manager.getStreamMaxVolume(stream))" kodu karşımıza çıkmaktadır. Bu kod satırı SeekBar nesnesinin alabileceği maximum seviyeyi belirlemektedir. Parametre olarak AudioManager'ın değişkenini kullanırız. AudioManager'ı kullanmamızdaki amacımız telefonumuzun alabileceği maximum ses seviyesine ulaşmaktır. Diğer bir kod satırını açıklayacak olursak "bar.setProgress(manager.getStreamVolume(stream))" kodu ile uygulama çalıştığında SeekBar'ın hangi değerle başlayacağını belirliyoruz. Yani "bar.setProgress(45)" şeklinde yazmış olsaydık uygulama, ilk çalıştığında %45'lik bir ses ile müziğimizi oynatmaya başlayacaktı. Bu iki satır ile SeekBar'ın özelliklerini belirledik. Sırada projemizde önemli bir nokta olan, ses ayarlama olayını tanımlamaya geldi. Bir sonraki satıra "bar.setOnSeekBarChangeListener()" ile butonumuzun tıklama olayına benzer bir şekilde başka bir olay tanımlıyoruz. Bu olayı yazmakla birlikte karşımıza 3 adet fonksiyon geliyor. Uygulamamızda, bu fonksiyonlardan SeekBar'ın durumunu değiştirmesi ile ilgili olan "onProgressChanged()" fonksiyonunu inceleyeceğiz.
"onProgressChanged()" metodu, SeekBar değeri değiştiğinde SeekBar'ın ne yapacağına karar veriyor. Bu metodun içerisindeki kodu anlatacak olursak, içerisine yazılan kod ile media dosyamıza ne olacağını yazıyoruz. Kısacası song isimli müziğimize sesinin ayarlanması için gerekli olan komutu yazıyoruz. Bu kod satırlarını yazdıktan sonra "onCreate()" metodunun içerisine gidiyoruz ve setSeekBar metodumuzu yazıp uygulamamızı çalıştırıyoruz.
"onProgressChanged()" metodu, SeekBar değeri değiştiğinde SeekBar'ın ne yapacağına karar veriyor. Bu metodun içerisindeki kodu anlatacak olursak, içerisine yazılan kod ile media dosyamıza ne olacağını yazıyoruz. Kısacası song isimli müziğimize sesinin ayarlanması için gerekli olan komutu yazıyoruz. Bu kod satırlarını yazdıktan sonra "onCreate()" metodunun içerisine gidiyoruz ve setSeekBar metodumuzu yazıp uygulamamızı çalıştırıyoruz.
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
- Güneş Enerji Santrallerinde Yıldırımdan Korunma ve Topraklama
- Megger Türkiye Ofisi
ANKET