В документации от производителя ОС работа с аудио фокусом не помечена как устаревшая. Других решений документация не предлагает, а мы можем использовать только то, что дает Google.bandonAudioFocus - устарела...предложите другое решение
В документации от производителя ОС работа с аудио фокусом не помечена как устаревшая. Других решений документация не предлагает, а мы можем использовать только то, что дает Google.bandonAudioFocus - устарела...предложите другое решение
Ну вы даете, работа с аудиофокусом не устарала, устарели методы работы с аудиофокусом.В документации от производителя ОС работа с аудио фокусом не помечена как устаревшая. Других решений документация не предлагает, а мы можем использовать только то, что дает Google.
Остальное - уже контекст приложения. Сам по себе SDK - только обертка над сигналингом и WebRTC библиотекой, поэтому о том, что именно будет происходить в приложении, он не знает.audioManager = Flashphoner.getAudioManager().getAudioManager();
Что то все равно как то криво работает с БТ, пока не могу понять зависимости. То отрубается воспроизведение звуков, то стримов.В любом случае, контекст SDK заканчивается здесь
Остальное - уже контекст приложения. Сам по себе SDK - только обертка над сигналингом и WebRTC библиотекой, поэтому о том, что именно будет происходить в приложении, он не знает.
Когда искали решение на уровне приложения, учитывали ваш случай с поддержкой старых версий Android, поэтому предложили решение с устаревшим, но работающим методом.
Кажется, здесь должно бытьFlashphoner.getAudioManager().setUseBluetoothSco(false);
Flashphoner.getAudioManager().setUseSpeakerPhone(false);
Flashphoner.getAudioManager().setUseBluetoothSco(true);
Уточните, пожалуйста: если Вы создаете и запускаете плеер доНа данный момент есть зависимость - воспроизодится стрим или нет. Если стрим воспроизводится - то звуки тоже в это время воспроизводятся, если стрим не воспроизводится то звуки не воспроизводятся.
stream.play()
, то звук из плеера не воспроизводится, а если после stream.play()
, то звук из плеера играет?У нас могут быть разные ситуации.Уточните, пожалуйста: если Вы создаете и запускаете плеер доstream.play()
, то звук из плеера не воспроизводится, а если послеstream.play()
, то звук из плеера играет?
Этого можно добиться, если микшировать аудио из файла в поток на сервере. Но, если необходимо играть именно локальное аудио (например TTS), то такой вариант не подойдет. Если есть возможность вынести аудио на сервер, лучше микшировать.никак не получается сделать чтобы все было слышно в любой момент времени в любой комбинации
если использовать этот аудиоменеджер, звуки играют?полученый из audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
Мы не можем, это делать по нескольком причинам:Этого можно добиться, если микшировать аудио из файла в поток на сервере. Но, если необходимо играть именно локальное аудио (например TTS), то такой вариант не подойдет. Если есть возможность вынести аудио на сервер, лучше микшировать.
нет не играют;если использовать этот аудиоменеджер, звуки играют?
К сожалению мы не можем, это претит идеологии приложения.Переоткрыли тикет WCS-3095, но в этот раз исследование, скорее всего, будет более длительным.
В качестве обходного варианта рекомендуем микшер, т.к. к задержкам это не приведет (микшер по умолчанию realtime), и нагрузку на сервер микширование только аудио дает в разы меньшую по сравнению с видео. Канали клиента трафиком без видео также нагружаются меньше.
AudioAttributes.USAGE_VOICE_COMMUNICATION
для плеера решает проблему:MediaPlayer music = MediaPlayer.create(getBaseContext(), R.raw.sound1);
music.setAudioAttributes(
new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
.build());
music.start();
AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
Log.d("AudioFocus,", "onAudioFocusChange="+focusChange);
music.setVolume(1, 1);
}
};
// Request audio focus for playback
int requestResult = Flashphoner.getAudioManager().getAudioManager().requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
Log.d("AudioFocus,", "requestResult="+requestResult);
// Abandon audio focus when playback complete
music.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Flashphoner.getAudioManager().getAudioManager().abandonAudioFocus(audioFocusChangeListener);
}
});
Нет, к сожалению, iOS такого не позволяет. Например, нельзя играть WebRTC поток одновременно с Youtube. Это касается как видео, так и аудио.Добрый день, вижу есть решение для запуска звука на фоне со стримом для Андроида, есть ли подобное для iOS SDK?