Last active
July 14, 2017 23:08
-
-
Save kkm/8bc4a361cd86fb072ef5c2897d332e8f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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