客观的:
为 WebKit 中不支持的 WebRTC JS API 提供原生支持,并通过 WkWebView 中加载的 webapp 进行 WebRTC 调用。
到目前为止我尝试过的:
截至目前,webkit 不支持 WebRTC W3C JavaScript API。
cordova提供了一个跨平台插件来支持 webRTC,但我不想采用跨平台方式。
有一个可用的 webRTC原生框架,但我不想完全采用原生方式。
到目前为止,我能够在 JavaScript中覆盖navigator.getUserMedia
navigator.getUserMedia = function(constraints, onSuccess, onError){
myWebRTC.getUserMedia(document.getElementById('roomid').value)
}
并调用本机 AppRTC SDK API 从本机端发起调用,它可以工作。
if let roomId=NSUserDefaults.standardUserDefaults().valueForKey("RoomId"){
appClient = ARDAppClient(delegate: self)
appClient?.createLocalMediaStream()
appClient?.connectToRoomWithId(String(roomId), options: nil)
localVideoView?.hidden = false;
remoteVideoView?.hidden = false;
btnDisconnect?.hidden = false;
webview?.hidden = true;
}
这是完整的源代码
AppRTC 它有自己的本机视频视图,但我想在 webview 内的 HTML 元素中显示视频。
AppRTC 也不提供视频流......即使我可以从中获取流。如何将流提供给 wkwebview 是一个挑战,因为它的 RTC 仅评估 JavaScript 我认为它不可能。
所以我已经集成了 CocoaHTTPServer并且我正在考虑找到一种方法从这个流到 WkWebView。
非常感谢任何有助于实现我的目标的见解和建议!