WebRTC Android-createPeerConnection()始终返回null
我是Android和WebRTC的新手,我一直在努力在网站和我的Android设备之间建立p2p视频连接。我已经让这两个网站之间的工作,所以我相当肯定我的问题在于安卓方面 当我尝试使用PeerConnectionFactory.createPeerConnection()创建新的PeerConnection对象时,结果总是空的。我正在使用WebRTC的版本vesion M58WebRTC Android-createPeerConnection()始终返回null,android,webrtc,Android,Webrtc,我是Android和WebRTC的新手,我一直在努力在网站和我的Android设备之间建立p2p视频连接。我已经让这两个网站之间的工作,所以我相当肯定我的问题在于安卓方面 当我尝试使用PeerConnectionFactory.createPeerConnection()创建新的PeerConnection对象时,结果总是空的。我正在使用WebRTC的版本vesion M58 PeerConnection.IceServer iceServer = new PeerConnection.IceS
PeerConnection.IceServer iceServer = new PeerConnection.IceServer("http://stun.stun.l.google.com:19302/");
List<PeerConnection.IceServer> servers = new ArrayList<PeerConnection.IceServer>();
servers.add(iceServer);
// Media Constraints
final MediaConstraints mediaConstraints = new MediaConstraints();
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("OfferToReceiveAudio", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("OfferToReceiveVideo", "true"));
mediaConstraints.optional.add(new MediaConstraints.KeyValuePair("DtlsSrtpKeyAgreement", "true"));
// Set up remote rendering stuff
rootEGLBase = EglBase.create();
svr = (SurfaceViewRenderer) findViewById(R.id.remote_video);
svr.init(rootEGLBase.getEglBaseContext(), null);
svr.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
svr.setZOrderMediaOverlay(true);
svr.setEnableHardwareScaler(true);
remoteProxyRenderer.setTarget(svr);
remoteRender = remoteProxyRenderer;
// Create a peer connection factory
PeerConnectionFactory.initializeAndroidGlobals(this.ctx, true);
PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
options.networkIgnoreMask = 0;
PeerConnectionFactory peerConnectionFactory = new PeerConnectionFactory(options);
// wait until my websocket has connected
System.out.println("waiting for websocket to be inited...");
while (this.ws == null);
System.out.println("done wait");
final WebSocket in_scope_ws = this.ws;
// create peer connection observer
PeerConnection.Observer pcObserver = new PeerConnection.Observer() {/* not included - mostly just prints */};
// Create peerconnection
final PeerConnection peerConnection = peerConnectionFactory.createPeerConnection(servers, mediaConstraints, pcObserver);
您需要创建LocalMediaStream并设置videoHeight videoWidth、createVideoSource和createAudioSource
在创建PeerConnection之前。可以启用详细日志记录来跟踪问题
org.webrtc.Logging.enableLogToDebugOutput(Logging.Severity.LS_VERBOSE);
另外,请确保您已授予所需的运行时权限(摄像头、录制)另一个问题是
createPeerConnection()
返回null可能是由于IceServer
的配置错误,请确保您设置了正确的IceServer
和正确的凭据。谢谢!我试试看。我只需要单向视频,所以我是否只创建本地媒体流而忽略它?还是我只是把它寄出去,相信另一端不会对它做任何事?
org.webrtc.Logging.enableLogToDebugOutput(Logging.Severity.LS_VERBOSE);