Android SD: управление звуком

joker

New Member
День добрый!

В данный момент работаю над интеграцией Вашего SDK в андроид приложение. За основу беру вот этот пример: https://flashphoner.com/docs/wcs5/wcs_docs/html/en/wcs-developer-guide-2/.

Проблема в следующем:
1. Устанавливается соединение и начинается воспроизведение стрима
2. Нажимаем кнопки регулирования звука на устройстве

Актуальный результат:
Регулируется in call уровень звука (судя по всему AudioManager перешел в режим MODE_IN_COMMUNICATION). Как результат, нельзя сделать mute, тк in call не предоставляет такой возможности.

Ожидаемый результат:
Регулируется media уровень звука (AudioManager в режиме MODE_NORMAL)

Попытки вручную после запуска стрима выставить MODE_NORMAL не увенчались успехом.

В WCSAudioManager:init есть установка режима audioManager.setMode(3); (те MODE_IN_COMMUNICATION). Но для нашего приложения это не подходит по ряду причин. Просьба, пояснить с какой целью переключается этот режим и, по возможности добавить в SDK возможность выбирать желаемый режим воспроизведения аудио.
 

Max

Administrator
Staff member
Добрый день.
Актуальная документация по Android SDK находится здесь:
- Android SDK 1.0 (Android 8 и ниже)
- Android SDK 1.1 (Android 9 и выше)
Посмотрите также исходный код примера Media Devices на GitHub в качестве примера использования функций Flashphoner.getVolume(), setVolume() для регулирования громкости при воспроизведении.
 

Max

Administrator
Staff member
Добрый день.
Мы создали внутренний тикет (WCS-2212) и сообщим здесь о результатах.
 

Max

Administrator
Staff member
Добрый день.
В сборке Android SDK 1.1 1.1.0.12 проблема исправлена, при установке setVolume(0) звук отключается. В пример Media Devices добавлено управление звуком при помощи аппаратных кнопок:
Code:
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        int currentVolume = Flashphoner.getVolume();
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                if (currentVolume == 1) {
                    Flashphoner.setVolume(0);
                }
                mPlayVolume.setProgress(currentVolume-1);
                break;
            case KeyEvent.KEYCODE_VOLUME_UP:
                if (currentVolume == 0) {
                    Flashphoner.setVolume(1);
                }
                mPlayVolume.setProgress(currentVolume+1);
                break;
        }
        return super.onKeyDown(keyCode, event);
    }
 

joker

New Member
День добрый!

А когда эта правка появится для версии 1.0?
 

Max

Administrator
Staff member
Добрый день.
Мы портировали фикс в Android SDK 1.0 в сборке 1.0.1.69, исходные тексты примера Media Devices доступны на GitHub.
 
Top