Używam AudioTrack do odtwarzania dźwięku, który odbieram przez gniazda UDP. Z dźwięku wydobywa się dużo hałasu, więc zdecydowałem się użyć AudioManager. Ale AudioManager zmienia routing dźwięku poza granice aplikacji. Poniżej znajduje się kod, którego używam.Użyj AudioTrack z zestawem AudioManager Telekonferencja
m_amAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
m_amAudioManager.setMode(AudioManager.MODE_IN_CALL);
m_amAudioManager.setSpeakerphoneOn(false);
Problem z tym kodem jest, że kiedy zamknąć aplikację i uruchomić odtwarzacz muzyczny, dźwięk pochodzi z przedniego głośnika a nie ususal tyłu głośnika i nie mogę zmienić go jakoś. Aby rozwiązać ten problem, postanowiłem dodać następujący wiersz podczas zamykania aplikacji.
m_amAudioManager.setSpeakerphoneOn(true);
Ale z tą linią problem polega na tym, że kiedy odbieram połączenie (normalne połączenie), domyślnie głośnik jest włączony. Naprawdę potrzebuję pomocy w tym zakresie.
Dziękuję za odpowiedź. Użyłem tego pozwolenia. Naprawiłem jeden z moich problemów. Głośnik nie jest domyślnie włączony. Ale z tym kodem próbowałem uruchomić odtwarzacz muzyki i zaczął działać na przednim głośniku. Każdy pomysł, jak zmienić to na domyślne? – SoH
Ustawieniem domyślnym jest ustawienie użytkownika urządzenia przed uruchomieniem aplikacji. Chodzi o to, aby przywrócić ustawienia menedżera AudioManagera, aby stan był przed zmianą. Jeśli więc głośnik jest wyłączony przed uruchomieniem aplikacji, zostanie wyłączony po zatrzymaniu aplikacji. – TouchBoarder
@hsigmond czy to jest OK, jeśli zmienimy tryb po uruchomieniu AudioTrack? – onmyway133