2016-07-25 26 views
1

나는 android 용으로 native webrtc SDK (libjingle)를 사용하려고합니다. 지금까지 안드로이드에서 웹 (또는 다른 플랫폼)으로 스트림을 보낼 수 있습니다. 피어에서 MediaStream을받을 수도 있습니다. (onAddStream 콜백에)android에서 webrtc.AudioTrack을 재생하는 방법 (No Video)

제가하고있는 프로젝트는 오디오 스트림 만 필요합니다. 비디오 트랙이 생성되거나 다른 사람에게 전송되지 않습니다.

내 질문은입니다. 원격 피어에서 가져온 MediaStream 객체를 어떻게 재생합니까?

@Override 
public void onAddStream(MediaStream mediaStream) { 
    Log.d(TAG, "onAddStream: got remote stream"); 
    // Need to play the audio /// 
} 

다시 질문은 오디오에 관한 것입니다. 나는 비디오를 사용하지 않는다. 분명히 모든 원시 webrtc 예제는 비디오 트랙을 사용하므로 어떤 문서 나 예제를 웹에서 찾을 수있는 행운이 없었습니다.

미리 감사드립니다.

답변

1
우리는 원격 오디오 트랙 코드 아래

import org.webrtc.AudioTrack; 

@Override 
public void onAddStream(final MediaStream stream){ 
    if(stream.audioTracks.size() > 0) { 
     remoteAudioTrack = stream.audioTracks.get(0); 
    } 
} 
분명히

모든 네이티브의 WebRTC 예제를 사용하여 얻을 수있는

비디오가 추적 사용하기 때문에 내가 웹에있는 모든 문서 또는 예제를 찾는데 운이 없었다 .

예, 앱 개발자는 비디오 렌더링에만주의를 기울여야합니다. 원격 오디오 트랙을받은 경우 기본적으로 기본 스피커 (이어 스피커/시끄러운 스피커/유선 헤드셋) 기반의 근접 설정에서 재생됩니다. AppRTCAudioManager.java 코드 아래

확인 활성화/비활성화 스피커

/** Sets the speaker phone mode. */ 
private void setSpeakerphoneOn(boolean on) { 
    boolean wasOn = audioManager.isSpeakerphoneOn(); 
    if (wasOn == on) { 
     return; 
    } 
    audioManager.setSpeakerphoneOn(on); 
} 

참조 출처 : 답변 AppRTCAudioManager.java

+0

감사합니다! 어떻게 AudioManager의 인스턴스를 얻을 수 있습니까? 순수한 libjingle 사용에. –

+0

AudioManager는 Android 내부 라이브러리입니다 – Ajay

+0

너무 간단합니다 - 감사합니다! –