2011-07-22 16 views
24

Normal ses düğmelerini kullanarak uyguladığım medya birimi düzeyini kontrol etmek istiyorum. Sorun benim uygulamamın kısa sesler kullanması ve kullanıcı için rahatsız edici olabilir. Oynatırken medya sesini sadece ayarlayabilirsiniz (1 saniye) daha sonra zil sesi seviyesini ayarlamaya başlar. Medya ses düzeyini nasıl varsayılan yapabilirim?Medya birimi nasıl kontrol edilir?

cevap

45

() Yapabileceğiniz:

setVolumeControlStream(AudioManager.STREAM_MUSIC); 
+0

Teşekkür ederim, bu gayet iyi çalışıyor. –

+0

@Kevin: +1, Bu yöntemi bilmiyordum - yaklaşımımdan biraz daha basit. ;-) – Squonk

+0

İki ses kontrol akışı istiyorsam ne yapmalıyım? –

3

Bunu denemedim, ancak Etkinliğinizde onKeyDown(int keyCode, KeyEvent event)'u geçersiz kılarak normal birim düğmelerini engelleyebilmeniz gerekir. KEYCODE_VOLUME_UP ve KEYCODE_VOLUME_DOWN anahtar kodlarını kontrol edin. çalışmalı ve onKeyDown(...) yönteminden true dönerseniz (eğer olay ele ettiğiniz gösteren) streamType parametre için STREAM_MUSIC ile AudioManager.setStreamVolume(int, int, int) kullanma

, bu zil sesini ayarlayarak sistem önlemek gerekir. Kullanmadığınız diğer tüm kodlar için false'u iade ettiğinizden emin olun. senin etkinliğin onCreate yılında

+0

İki ses kontrol akışı istiyorsam ne yapmalıyım? –

3

ses tuşlarını kendiniz idare etmeyin - bu neredeyse i mpossible to guarantee o ses düzeyi tuşlarının davranışını kırmak olmaz ise .

Çağrı Bu AudioManager söyler senin onCreate():

setVolumeControlStream(AudioManager.STREAM_MUSIC); 

bu API application has focus, ses tuşları müzik seviyesini ayarlamak gerekirken söyledi.

İlgili konular