private void setCamera() { localMS = factory.createLocalMediaStream("ARDAMS"); if (pcParams.videoCallEnabled) { MediaConstraints videoConstraints = new MediaConstraints(); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxHeight", Integer.toString(pcParams.videoHeight))); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxWidth", Integer.toString(pcParams.videoWidth))); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxFrameRate", Integer.toString(pcParams.videoFps))); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("minFrameRate", Integer.toString(pcParams.videoFps))); videoSource = factory.createVideoSource(getVideoCapturer(), videoConstraints); localMS.addTrack(factory.createVideoTrack("ARDAMSv0", videoSource)); } AudioSource audioSource = factory.createAudioSource(new MediaConstraints()); localMS.addTrack(factory.createAudioTrack("ARDAMSa0", audioSource)); mListener.onLocalStream(localMS); }
@Override public void onRemoveStream(MediaStream mediaStream) { Log.d(TAG, "onRemoveStream " + mediaStream.label()); removePeer(id); }
public void dispose() { // Remove and release previously added audio and video tracks. while (!audioTracks.isEmpty()) { AudioTrack track = audioTracks.getFirst(); removeTrack(track); track.dispose(); } while (!videoTracks.isEmpty()) { VideoTrack track = videoTracks.getFirst(); removeTrack(track); track.dispose(); } // Remove, but do not release preserved video tracks. while (!preservedVideoTracks.isEmpty()) { removeTrack(preservedVideoTracks.getFirst()); } free(nativeStream); }
public boolean removeTrack(VideoTrack track) { videoTracks.remove(track); preservedVideoTracks.remove(track); return nativeRemoveVideoTrack(nativeStream, track.nativeTrack); }
public boolean removeTrack(AudioTrack track) { audioTracks.remove(track); return nativeRemoveAudioTrack(nativeStream, track.nativeTrack); }
public MediaStream createLocalMediaStream(String label) { return new MediaStream(nativeCreateLocalMediaStream(nativeFactory, label)); }
public void dispose() { close(); for (MediaStream stream : localStreams) { nativeRemoveLocalStream(stream.nativeStream); stream.dispose(); } localStreams.clear(); for (RtpSender sender : senders) { sender.dispose(); } senders.clear(); for (RtpReceiver receiver : receivers) { receiver.dispose(); } receivers.clear(); freePeerConnection(nativePeerConnection); freeObserver(nativeObserver); }
@CalledByNative public void dispose() { // Remove and release previously added audio and video tracks. while (!audioTracks.isEmpty()) { AudioTrack track = audioTracks.get(0 /* index */); removeTrack(track); track.dispose(); } while (!videoTracks.isEmpty()) { VideoTrack track = videoTracks.get(0 /* index */); removeTrack(track); track.dispose(); } // Remove, but do not release preserved video tracks. while (!preservedVideoTracks.isEmpty()) { removeTrack(preservedVideoTracks.get(0 /* index */)); } JniCommon.nativeReleaseRef(nativeStream); }
public boolean removeTrack(VideoTrack track) { videoTracks.remove(track); preservedVideoTracks.remove(track); return nativeRemoveVideoTrack(nativeStream, track.nativeTrack); }
public boolean removeTrack(AudioTrack track) { audioTracks.remove(track); return nativeRemoveAudioTrack(nativeStream, track.nativeTrack); }
public MediaStream createLocalMediaStream(String label) { return new MediaStream(nativeCreateLocalMediaStream(nativeFactory, label)); }
for (MediaStream stream : localStreams) { nativeRemoveLocalStream(stream.nativeStream); stream.dispose();
private MediaStream createStream() { upStream = factory.createLocalMediaStream("stream1"); AudioTrack audio = factory.createAudioTrack("audio1", factory.createAudioSource(new MediaConstraints())); upStream.addTrack(audio); upStream.addTrack(getVideoTrack()); //this.capturer.startCapture(500, 500, 30); return upStream; }
@Override public void onAddStream(MediaStream mediaStream) { Log.d(TAG, "onAddStream " + mediaStream.label()); // remote streams are displayed from 1 to MAX_PEER (0 is localStream) mListener.onAddRemoteStream(mediaStream, endPoint + 1); }
private void startStreamingVideo() { MediaStream mediaStream = factory.createLocalMediaStream("ARDAMS"); mediaStream.addTrack(videoTrackFromCamera); peerConnection.addStream(mediaStream); sendMessage("got user media"); }
public String toString() { return "[" + label() + ":A=" + audioTracks.size() + ":V=" + videoTracks.size() + "]"; }
private void initInternal(){ if (localStream != null){ Log.i("lin","---*lin*---> initInternal 失败"); return; } rootEglBase = EglBase.create(); EglBase.Context renderEGLContext = rootEglBase.getEglBaseContext(); if (!PeerConnectionFactory.initializeAndroidGlobals(_context,true,false,false)){ Log.i("lin","---*lin*---> initInternal error "); userListener.onError(); return; } peerConnectionFactory = new PeerConnectionFactory(); localStream = peerConnectionFactory.createLocalMediaStream("ARDAMS"); localStream.addTrack(createAudioTrack()); Log.i("lin","---*lin*---> DotVoice init success"); }
private void startStreamingVideo() { MediaStream mediaStream = factory.createLocalMediaStream("ARDAMS"); mediaStream.addTrack(videoTrackFromCamera); localPeerConnection.addStream(mediaStream); MediaConstraints sdpMediaConstraints = new MediaConstraints(); localPeerConnection.createOffer(new SimpleSdpObserver() { @Override public void onCreateSuccess(SessionDescription sessionDescription) { Log.d(TAG, "onCreateSuccess: "); localPeerConnection.setLocalDescription(new SimpleSdpObserver(), sessionDescription); remotePeerConnection.setRemoteDescription(new SimpleSdpObserver(), sessionDescription); remotePeerConnection.createAnswer(new SimpleSdpObserver() { @Override public void onCreateSuccess(SessionDescription sessionDescription) { localPeerConnection.setRemoteDescription(new SimpleSdpObserver(), sessionDescription); remotePeerConnection.setLocalDescription(new SimpleSdpObserver(), sessionDescription); } }, sdpMediaConstraints); } }, sdpMediaConstraints); }