2015-08-28 35 views
5

Uygulamalarım ilk olarak hizmetten ve etkinlikten ikinci olmak üzere iki ses çalıyor. İkinci ses çalarken ilk sesin sesini azaltmak istiyorum. İkinci sesi durdurduktan sonra, ilk sesin hacmi artırılmalıdır.Hizmetten çalınan ses düzeyi nasıl kontrol edilir?

+0

Oynatım için hangi Apis kullanıyorsunuz? – JohanShogun

+0

Android MediaPlayer'ı kullanmak ve ses benim ham klasörümde. –

cevap

3

MediaPlayer'ın bunun için yöntemleri vardır. Sol ve sağ kanal için ses seviyesi ayarlar. yoksayılmıyor: Eğer hizmetiyle zamana denk gelecek şekilde MediaPlayer uygulanan ama benim testinde yılında, benim hizmetinde MediaPlayer bir örneğini oluşturdu nasıl

mediaPlayerA.setVolume(1.0f, 1.0f); 

dilsiz diğer oyuncu

mediaPlayerB.setVolume(0.0f, 0.0f); 
+0

Basit ama yararlı. Teşekkürler ;.) – JanPl

1

emin değil sınıf. Hizmet sınıfının hizmet dışı sınıfının MediaPlayer örneğinin hacmini kontrol etmek için, MediaPlayer örneğini statik üye olarak ayarladım. Bunu yapan (olan kendi ses çalıyor) Etkinliğime olarak

static MediaPlayer mediaPlayer = new MediaPlayer(); 

:

Yani benim hizmet sınıfında i bunu

MyOwnService.mediaPlayer.setVolume(0.1f, 0.1f); 

Yani, benim faaliyeti içine atladığında Etkinliğin oynatılmasından önce bu ifadeyi kullandım. Dikkat etmedim (0.0f, 0.0f). Şamandıralarınızla ihtiyaçlarınızı karşılayana kadar oynayabilirsiniz. 0.0f - 1.0f arasında değişmektedir.

Etkinliğimde, etkinlik için sesin ne zaman tamamlandığını bildiğim için MediaPlayer.OnCompletionListener'u da uyguladım. Bu arabirimin, onCompletion(MediaPlayer mp)'u uygulamak için bir yöntemi vardır. Bu yöntem ses tamamlandığında çağrılır.

Yani benim aktivitesinde ben de yaptım: Burada

@Override 
public void onCompletion(MediaPlayer mp) { 
    MyOwnService.mediaPlayer.setVolume(1.0f, 1.0f); 
} 

bu etkinlik olması dahilinde ses çalma şimdi tamamladı beri, o zaman, geri maksimum hizmet müziğin ses düzeyini yükseltti.

Yine, bu testin tamamıydi ve statik bir üyeyi tıpkı bunun gibi (yayınlanan bir uygulamada) açığa çıkarmak istemem, bir şekilde nasıl kapsülleyeceğimi, bu yüzden bir tür erişim denetimi var.

Umarım bu yardımcı olmuştur.