Tôi đang sử dụng AudioTrack để phát âm thanh tôi nhận được thông qua ổ cắm UDP. Tôi đang nhận được rất nhiều tiếng ồn cùng với âm thanh vì vậy tôi quyết định sử dụng AudioManager. Nhưng AudioManager thay đổi định tuyến âm thanh vượt quá giới hạn của ứng dụng. Dưới đây là mã tôi đang sử dụng.Sử dụng AudioTrack với bộ AudioManagerĐiện thoại thông minhOn
m_amAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
m_amAudioManager.setMode(AudioManager.MODE_IN_CALL);
m_amAudioManager.setSpeakerphoneOn(false);
Sự cố với mã này là khi tôi đóng ứng dụng và khởi động Trình phát nhạc, âm thanh phát ra từ loa trước và không phải loa sau lưng và tôi không thể thay đổi bằng cách nào đó. Để giải quyết vấn đề này, tôi quyết định thêm dòng sau khi tôi đóng ứng dụng của mình.
m_amAudioManager.setSpeakerphoneOn(true);
Nhưng với dòng này, vấn đề là khi tôi nhận cuộc gọi (cuộc gọi bình thường), theo mặc định, loa được bật. Tôi thực sự cần giúp đỡ về điều này.
Cảm ơn rất nhiều vì đã trả lời. Tôi đã sử dụng quyền này. Và đã khắc phục được một trong những vấn đề của tôi. Loa không còn được bật theo mặc định. Nhưng với đoạn mã này, tôi đã thử chạy trình phát nhạc và nó bắt đầu chạy trên loa phía trước. Bất kỳ ý tưởng làm thế nào để thay đổi đó để mặc định? – SoH
Giá trị mặc định là cài đặt do người dùng thiết bị đặt trước khi anh ta khởi động ứng dụng của bạn. Vấn đề là khôi phục cài đặt AudioManager về trạng thái là trước khi bạn thay đổi nó. Vì vậy, nếu speakerPhone tắt trước khi ứng dụng của bạn bắt đầu, nó sẽ tắt khi ứng dụng của bạn dừng. – TouchBoarder
@hsigmond có ổn không nếu chúng ta thay đổi chế độ sau khi bắt đầu AudioTrack? – onmyway133