Jak wyciszyć MediaPlayer w androidJak wyciszyć MediaPlayer w android
Odpowiedz
Ten kod pracował dla mnie,
MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);
mp.start();
dla Wycisz
mp.setVolume(0,0);
& Mikrofon lub pełny Tom
mp.setVolume(1,1);
Może zaistnieć potrzeba zaniknięcia/pojawienia się dźwięku, zamiast natychmiastowego ustawienia go na pełną (1.0f) lub zero (0.0f) głośność.
To trochę skomplikowane, bo trzeba zadanie asynchronicznej zachować swoją aplikację reaguje:
mpMain jest moje wystąpienie MediaPlayer grać pętli podkładu muzycznego. Dbam również o to w OnPause() i OnResume().
Metoda playBackgroundMusic służy do włączania muzyki, fadeOutBackgroundMusic wyłącza muzykę, ale zmniejszając głośność przez 0,5 sekundy (10 * 50, zobacz podczas i Thread.sleep).
Moja podstawowa wielkość to 0,8 f, możesz chcieć ustawić parametr asynchronicznego zadania lub użyć statycznej globalnej zmiennej.
public void playBackgroundMusic(Boolean isOn){
if(isOn){
// prevent conflics with async fade-out task
if(mtask_fadeout_music!=null){
mtask_fadeout_music.cancel(true);
mtask_fadeout_music=null;
}
if(mpMain==null){
mpMain = MediaPlayer.create(this, R.raw.zin___piano_2_140bpm_32158);
mpMain.setLooping(true);
mpMain.setVolume(0.8f,0.8f);
mpMain.start();
}
}
else{
if(mtask_fadeout_music==null){
fadeOutBackgroundMusic();
}
}
}
public void fadeOutBackgroundMusic(){
mtask_fadeout_music = (FadeOutMusic)new FadeOutMusic().execute();
}
//
// background processing ... fade out music stream
//
public class FadeOutMusic extends AsyncTask<String,Integer,String> {
@Override
protected String doInBackground(String... args) {
float level = 0.8f;
int i = 1;
while(i<50){
i++;
if(mpMain != null){
level=level*0.9f;
mpMain.setVolume(level, level);
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "dummy";
}
@Override
protected void onPostExecute(String dummy) {
if(mpMain != null){
mpMain.setVolume(0,0);
mpMain.release();
mpMain = null;
}
if(mtask_fadeout_music!=null){
mtask_fadeout_music = null;
}
}
@Override
public void onCancelled() {
if(mpMain != null){
mpMain.setVolume(0,0);
mpMain.release();
mpMain = null;
}
if(mtask_fadeout_music!=null){
mtask_fadeout_music = null;
}
}
}
AudioManager mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
int current_volume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//If you want to player is mute ,then set_volume variable is zero.Otherwise you may supply some value.
int set_volume=0;
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,set_volume, 0);
Spróbuj tego ...
AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
manager.setStreamMute(AudioManager.STREAM_MUSIC, true);
Będzie Kompletna wyciszyć głośność multimediów wyciszenia
Spróbuj
AudioManager am = getSystemService(Context.AUDIO_SERVICE);
// Request audio focus.
am.requestAudioFocus(listener, AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN);
http://developer.android.com/training/managing-audio/audio-focus.html
jest przestarzałe. użyj poniżej kodu alternatywnego.
// Change the stream to your stream of choice.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_MUTE, 0);
} else {
am.setStreamMute(AudioManager.STREAM_MUSIC, true);
}
- 1. Usługa MediaPlayer Android
- 2. android ANR w MediaPlayer zresetować
- 3. Android - Jak stwierdzić, kiedy MediaPlayer buforuje
- 4. Odtwarzanie macierzy bajtów w MediaPlayer - Android
- 5. Jak wyciszyć połączenie przychodzące
- 6. Three.js jak wyciszyć dźwięk?
- 7. Jak wyciszyć dźwięk mojej aplikacji?
- 8. Android: mediaplayer odszedł z nieobsłużonymi zdarzeniami
- 9. Android SeekBar do sterowania postępem MediaPlayer
- 10. W gcc, jak wyciszyć ostrzeżenie -fpermisive?
- 11. Strumień multimediów w Android MediaPlayer zatrzymuje się po zmianie sieci
- 12. Android: Bezstratne odtwarzanie zapętlonego pliku audio w MediaPlayer
- 13. Błąd Android MediaPlayer (-38, 0) "stop wywołany w stanie 0"
- 14. Pauza/Stop MediaPlayer Android w zadanym czasie programowo
- 15. Android - czy mogę wyciszyć aktualnie odtwarzane aplikacje audio?
- 16. Jak należy wyciszyć część fragmentu adresu URL?
- 17. Jak wyciszyć sygnał dźwiękowy dla SpeechRecognizer?
- 18. mediacodec vs mediaplayer i mediarecorder
- 19. WebRTC - Jak wyciszyć lokalne wyjście audio
- 20. Jak wyciszyć OpenCV "Kamera zrzucona na ramkę"
- 21. Jak wyciszyć ostrzeżenie policjanta fx CS0067?
- 22. Niestandardowa klasa MediaPlayer w Androidzie
- 23. zmiana rozmiaru bufora w MediaPlayer
- 24. Android SeekBar setProgress powoduje, że mój MediaPlayer pomija numer
- 25. MediaController z MediaPlayer
- 26. Android http live Streaming URL przy użyciu mediaplayer
- 27. Nie można uruchomić Android MediaPlayer onCompletion na ogień
- 28. Android MediaPlayer getCurrentPosition() powoduje, że dźwięk się zacina
- 29. Jak wyciszyć dźwięk migawki aparatu na telefonie z Androidem
- 30. Android mediaPlayer - czy istnieje metoda "isPrepared()" lub "getStatus()"?
dwie cyfry oznaczają kanał L i R, więc wyłączenie wyciszenia powinno mieć wartość mp.setvolume (1,1); –
@DheeB dziękuje, mam zaktualizowaną moją odpowiedź –
Wiem, że to dużo czasu po, ale dostaję wyjątek wskaźnika pustego kiedy próbuję ustawić głośność. Będę naprawdę wdzięczny za pomoc. –