2016-06-16 15 views
2

Я пытаюсь использовать динамик в моем pjsip приложение, поэтому я использую setOutputRoute:Как включить динамик в приложении Android-приложения pjsip?

pjmedia_aud_dev_route маршрут = pjmedia_aud_dev_route.PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER; MyApp.ep.audDevManager(). SetOutputRoute (route, true);

, но я получаю сообщение об ошибке: недействительный или неподдерживаемый звук (PJMEDIA_EAUD_INVCAP).

В pjsua говорится: этот метод действителен только в том случае, если устройство имеет функцию PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE в флажках AudioDevInfo.caps, в противном случае будет выбрана ошибка.

Я имею в виду, может быть, я должен установить этот флаг ... Но я не знаю, как

+0

У меня также есть эта проблема в iOS. Как включить громкоговоритель и выключить громкоговоритель с помощью pjsip? Я попробовал PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER этот. Но он ничего не делает в аудио. Заранее спасибо! :) – NandhaKumar

ответ

4

я столкнулся с той же проблемой несколько дней назад. Я знаю, что это не ответ, просто альтернатива, но я в конечном итоге использовал это, и он работает хорошо.

AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
audioManager.setSpeakerphoneOn(true); 

Я использовал Android AudioManger для переключения между наушником и спикером по телефону setSpeakerOn(). Если вы используете его, имейте в виду, что если вы переключите вывод, его набор будет постоянно соответствовать контексту. Вы можете получить текущее состояние, вызвав audioManager.isSpeakerphoneOn().

+0

Как вы это называете отдельно от своего кода PJSIP, используя jni? –

+1

Привет @IgorGanapolsky, я не знаю, но я думаю, что это [вопрос OpenSL ES] (https://qnalist.com/questions/5897167/help-needed-cannot-set-stream-type-audio-player-already- осознанный) связан с вашим. В зависимости от того, что вы хотите разработать, это может быть вариант. – oga