Perde arkası
Android'de Root Olmadan Uygulama Başına Ses Nasıl Çalışır
llcloud ekibi 4 dk okuma
Kısa yanıt
Android sesi medya, zil sesi ve alarm gibi ses türüne göre ayarlar, bu yüzden medya çalan her uygulama tek bir kaydırıcıyı paylaşır. AppVolume, o uygulamanın çalmasına bir ses efekti bağlayıp kazancını artırarak ya da azaltarak her uygulamaya kendi düzeyini verir. Hangi uygulamanın çaldığını bulmak tek bir geliştirici izni gerektirir ve AppVolume bunu bir kez Kablosuz hata ayıklama ve altı haneli eşleştirme koduyla alır, root, bilgisayar ve erişilebilirlik hizmeti gerekmez.
Bir oyunu kıs, podcast de onunla gider. Yol tarifini yükselt, müzik de fırlar. Android'de aynı anda iki şey çalan herkes er geç buna çarpar. Bunu düzeltmek için AppVolume'u yaptık ve çalışma biçimi Android'in sesi nasıl ele aldığı hakkında çok şey söylüyor. İşte sade sözlerle.
Android'de neden yalnızca tek bir medya sesi var?
Android sesi uygulama başına değil, Android'in akış (stream) dediği ses türü başına ayarlar. Medya bir akıştır, zil sesleri, alarmlar, bildirimler ve aramaların her birinin kendi akışı var. Bir şey çalarken ses tuşlarına bastığında medya akışını oynatırsın ve müzik, video, oyun ya da podcast çalan her uygulama onu paylaşır.
Bu tasarım işleri basit tutar. Ses tuşları her zaman tahmin edilebilir bir şey yapar ve bir oyun kendini kıstı diye alarm sessiz kalmaz. Bedeli, medya çalan iki uygulamanın kendi başlarına asla farklı düzeylerde duramamasıdır. Her uygulama için farklı ses ayarlama rehberimiz telefonların kutudan ne sunduğunu anlatıyor, çoğunda bu hiçbir şey.
Diğer uygulama başına ses uygulamaları nasıl çalışır?
Birçok ses uygulaması hangi uygulamanın önde olduğunu izler ve değiştiğinde tek medya sesini değiştirir. Oyunu aç, medya sesi düşer. Podcast uygulamasına geç, geri çıkar. Bu aynı anda tek bir uygulama için işe yarayabilir ama yine de tek bir kaydırıcıdır. Müziğin altında bir navigasyon uygulaması gibi birlikte çalan iki uygulama her zaman bir düzeyi paylaşır.
Bu uygulamaların bazıları ekranda hangi uygulamanın olduğunu görmek ya da ses tuşlarını yakalamak için bir erişilebilirlik hizmetine de ihtiyaç duyar. Bu kadar küçük bir iş için güçlü bir izin.
AppVolume her uygulamaya kendi düzeyini nasıl verir?
Android'in, bir uygulamanın Android'in ses oturumu dediği bir çalma parçasına bağlayabildiği ekolayzer ve dinamik işlemciler gibi bir dizi ses efekti vardır. Bunlardan biri içinden geçen sesin kazancını artırabilir ya da azaltabilir. AppVolume bu efekti düzey belirlediğin her uygulamanın oturumlarına bağlar ve kazancını kaydırıcından ayarlar.
Yani değişiklik yalnızca o uygulamanın sesine, hoparlöre ulaşmadan önce olur. Yüzde 80'deki bir podcast ile yüzde 20'deki bir oyun gerçekten aynı anda o düzeylerde çalar. Pro'nun sessiz bir uygulamayı yüzde 200'e kadar yükseltmesi ve dengesini sola ya da sağa kaydırması da aynı efektle olur.
AppVolume sesini asla duymaz, kaydetmez ya da göndermez. Ekranını ya da ses tuşlarını izlemez ve erişilebilirlik hizmeti yoktur. Yalnızca bir düzeyi yükseltir ya da kısar.
Kurulum neden Kablosuz hata ayıklama ve eşleştirme kodu kullanıyor?
Bir efekt bağlamak için AppVolume'un önce hangi oturumların var olduğunu ve her birinin hangi uygulamaya ait olduğunu bilmesi gerekir. Sistemin ses hizmeti bunları listeleyen bir durum raporu tutar ve Android bir uygulamanın onu okumasına yalnızca geliştiriciler için tasarlanmış bir izinle izin verir. Bir uygulama o izni olağan yoldan isteyemez. Yalnızca telefonun kabuğu, yani bir bilgisayarın hata ayıklama kablosu üzerinden aldığı erişim düzeyi, ya da root verebilir.
Kablosuz hata ayıklama bu kabuk erişimini bilgisayarsız verir. Kurulum sırasında onu açarsın ve Android altı haneli bir eşleştirme kodu gösterir. Onu AppVolume'a yazarsın, AppVolume çalıştığı telefonla eşleşir ve o tek izni tek bir komutla kendine verir. Kurulumun tamamı bu. Sonrasında çalışmaya devam eden bir yardımcı yoktur.
İzin sonra yeniden başlatmalarda ve uygulama güncellemelerinde kalır, bu yüzden Kablosuz hata ayıklamayı ve Geliştirici seçeneklerini tekrar kapatabilirsin. Zaten Shizuku kullanıyorsan ya da telefonun root'luysa AppVolume bunları kullanabilir. Benzer bir eşleştirmeyi Repel'de farklı bir iş için kullanıyoruz, bunu Repel'in firewall'u VPN yuvanı almadan nasıl çalışır yazısında anlatıyoruz.
Kaydırıcının arkasında ne oluyor?
Diğer uygulamaların sesine dokunan bir mikser dikkatli olmalıdır, çünkü hata yüksek sesle olur. Bu yüzden AppVolume birkaç kural izler:
- Bilinmeyen, sessizlik demek değildir. Durum raporu okunamazsa AppVolume hiçbir şeyi değiştirmez. Onu "hiçbir şey çalmıyor" diye okumak her efekti düşürür ve her uygulamayı bir anda tam sese gönderirdi.
- Gitti demek iki kez gitti demektir. Bir oturumun efekti bırakılmadan önce arka arkaya iki okumada eksik olması gerekir, böylece kısa bir boşluk sıçramaya yol açmaz.
- Düzeylerin hatırlanır. Bir uygulamayı bir kez, çalmadan önce bile ayarla, düzey her başladığında uygulanır.
- Bir iade kimseyi dışarıda bırakmaz. Zaten bir düzeyi olan bir uygulama her zaman tekrar yükseltilebilir.
Dürüst sınırlar neler?
Ses efektleriyle uygulama başına ses, ses çalan uygulamaların çoğunda çalışır, hepsinde değil.
- Bazı uygulamalar ayarlanamaz. Birkaçı sesi Android'in hiçbir efektin ulaşmasına izin vermediği yollardan çalar, düşük gecikmeli ses kullanan bazı oyunlar gibi. AppVolume karar vermeden önce yaklaşık bir buçuk dakika boyunca birkaç kez dener, sonra hiçbir işe yaramayan bir kaydırıcı bırakmak yerine sana söyler ve uygulamayı işaretler.
- Tam düzeyde saniyenin kesri olabilir. Bir uygulama çalmaya başladığında sesi efekt bağlanmadan önce başlayabilir.
- Ekolayzer uygulamaları devralabilir. Birini kullanıyorsan aynı sesin kontrolünü alabilir ve ikisi birbirinin yoluna çıkabilir.
- Efektler uygulama bırakana kadar kalır. Bir uygulama çalarken AppVolume'u kaldırırsan o uygulama sesini bırakana kadar düzeyini korur. Ayarlar'da önce her uygulamayı tam sese döndüren bir düğme var.
- Tek bir sistem raporuna bağlıdır. Gelecekteki bir Android sürümü uygulamaların onu okumasını durdurursa mikser neyin çaldığını göremez hale gelebilir. AppVolume bu durumda tahmin etmek yerine hiçbir şeyi değiştirmeyecek şekilde yapıldı.
Hangi uygulama başına ses uygulaması sana uyar?
Esas olarak kullanırken bir uygulamanın daha sessiz olmasını istiyorsan ön plan değiştirici yeterli olabilir. İki uygulamanın aynı anda farklı düzeylerde çalmasını istiyorsan her uygulamanın kendi sesini değiştiren bir şeye ihtiyacın var. AppVolume ve Precise Volume iki yaklaşımı karşılaştırıyor, Samsung sahipleri ise AppVolume ve Samsung Sound Assistant yazısını okumalı, çünkü Samsung kendi yolunu sunuyor. Hangisini seçersen seç, AppVolume'da reklam ve hesap yok, nedenleri uygulamalarımızda neden reklam yok yazısında.
Kaynaklar
Sorular
Android'de neden uygulama başına ses yok?
Android sesi hangi uygulamanın ürettiğine göre değil, ne için olduğuna göre gruplar. Medya, zil sesleri, alarmlar, bildirimler ve aramaların her birinin bir ses düzeyi vardır ve medya çalan her uygulama medya olanı paylaşır. Bu ses tuşlarını basit tutar ama bir uygulama devreye girmedikçe bir oyun ile bir podcast'in her zaman aynı düzeyde çalması demektir.
Her uygulamanın sesini root olmadan kontrol edebilir miyim?
Evet. AppVolume root ve bilgisayar gerektirmez. Yalnızca telefonun geliştirici araçlarının verebildiği bir izne ihtiyaç duyar ve bunu almanda telefonda sana yol gösterir: Kablosuz hata ayıklamayı aç, altı haneli bir eşleştirme kodu yaz ve bitti. İzin yeniden başlatmalarda ve güncellemelerde kalır, Shizuku ya da root zaten kullanıyorsan onlar da çalışır.
AppVolume neden Kablosuz hata ayıklamaya ihtiyaç duyuyor?
Hangi uygulamanın hangi sesi çaldığını görmek için AppVolume sistemin ses hizmetinden bir durum raporu okur ve Android uygulamaların bunu yalnızca bir geliştirici izniyle okumasına izin verir. Bu izni yalnızca telefonun kabuğu verebilir. Kablosuz hata ayıklama, telefonun AppVolume'a kabuk erişimini telefonun kendisinde bir kez vermesinin yoludur. Kurulumdan sonra tekrar kapatabilirsin.
Uygulama başına ses her uygulamada çalışır mı?
Hepsinde değil. Birkaç uygulama sesi Android'in hiçbir şeyin ayarlamasına izin vermediği yollardan çalar, düşük gecikmeli ses kullanan bazı oyunlar gibi. AppVolume, hiçbir işe yaramayan bir kaydırıcı bırakmak yerine bir uygulamanın ayarlanamadığını söyler. Bir uygulama ayarın uygulanmadan önce de saniyenin kesri kadar normal düzeyinde çalabilir.