Skip to content

Instantly share code, notes, and snippets.

@kkm
Last active July 14, 2017 23:08
Show Gist options
  • Save kkm/8bc4a361cd86fb072ef5c2897d332e8f to your computer and use it in GitHub Desktop.
Save kkm/8bc4a361cd86fb072ef5c2897d332e8f to your computer and use it in GitHub Desktop.
package kkm.com.testrtc;
import android.content.Context;
import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import org.webrtc.Camera1Enumerator;
import org.webrtc.CameraEnumerator;
import org.webrtc.EglBase;
import org.webrtc.PeerConnectionFactory;
import org.webrtc.RendererCommon;
import org.webrtc.SurfaceViewRenderer;
import org.webrtc.VideoCapturer;
import org.webrtc.VideoRenderer;
import org.webrtc.VideoSource;
import org.webrtc.VideoTrack;
public class MainActivity extends AppCompatActivity {
private static final String VIDEO_TRACK_ID = "video1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PeerConnectionFactory.initializeAndroidGlobals(this,true,true,true);
PeerConnectionFactory peerConnectionFactory = new PeerConnectionFactory();
//Camera Init
VideoCapturer videoCapturer = createCameraCapturer(new Camera1Enumerator(false));
VideoSource localVideoSource = peerConnectionFactory.createVideoSource(videoCapturer);
videoCapturer.startCapture(320, 240, 30);
//Camera mit Surfaceview verknüpfen
EglBase rootEglBase = EglBase.create();
SurfaceViewRenderer pipRenderer = (SurfaceViewRenderer) findViewById(R.id.local_video);
pipRenderer.init(rootEglBase.getEglBaseContext(), null);
pipRenderer.setMirror(true);
pipRenderer.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
peerConnectionFactory.setVideoHwAccelerationOptions(rootEglBase.getEglBaseContext(), rootEglBase.getEglBaseContext());
VideoTrack localVideoTrack = peerConnectionFactory.createVideoTrack(VIDEO_TRACK_ID, localVideoSource);
localVideoTrack.setEnabled(true);
localVideoTrack.addRenderer(new VideoRenderer(pipRenderer));
}
private VideoCapturer createCameraCapturer(CameraEnumerator enumerator) {
final String[] deviceNames = enumerator.getDeviceNames();
for (String deviceName : deviceNames) {
if (enumerator.isFrontFacing(deviceName)) {
VideoCapturer videoCapturer = enumerator.createCapturer(deviceName, null);
if (videoCapturer != null) {
return videoCapturer;
}
}
}
for (String deviceName : deviceNames) {
if (!enumerator.isFrontFacing(deviceName)) {
VideoCapturer videoCapturer = enumerator.createCapturer(deviceName, null);
if (videoCapturer != null) {
return videoCapturer;
}
}
}
return null;
}
}
//Activity Layout: https://gist.github.com/kkm/72dd1f1b974ae5e4ec5e10ac4dcd6c3b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment