nativemind_call 0.1.0
nativemind_call: ^0.1.0 copied to clipboard
Native media layer of NativeMind calls on Andrey Bekhtold's handmade WebRTC code (Android PeerConnectionClient, iOS WebRTCManager, the WebRTCClientType configuration, Debug.swift): video through Flutt [...]
nativemind_call #
Native media layer of NativeMind calls, built on Andrey Bekhtold's handmade WebRTC code (no AI, 2025-04): video goes
into Flutter textures (Android SurfaceProducer + EglRenderer, iOS FlutterTexture), so call tiles compose
under overlays and scroll without PlatformViews; hardware codecs on a shared EGL context; his WebRTC configuration
and call audio session on both platforms.
final call = NmNativeCall.instance;
await call.requestPermissions();
final me = await call.createClient(iceServers: [NmCallIceServer(urls: ['turn:turn.example.org:3478'], username: u, credential: p)]);
me.onOffer.listen(signalling.sendOffer); // your signalling
me.onIceCandidate.listen(signalling.sendCandidate); // null = end of candidates
await me.createOffer();
// remote answer / candidates: me.handleRemoteSdp(sdp); me.addIceCandidate(c); me.setReadyToSendIceCandidates(true);
// The call screens of nativemind_deals draw tiles through NmCallPort.videoTile:
final port = NmNativeCallPort(client: me, activeCall: info, onAccept: accept, onHangUp: hangUp);
NmLoopbackCall is Andrey's demo: two peer connections in one process (A sends the camera, B receives); see example/.
Platforms: Android (minSdk 24, webrtc-sdk 125.6422.07 — an app that also has flutter_webrtc gets that plugin's newer
build of the same artifact), iOS 13+ (WebRTC-SDK pod ≥ 125.6422.07; add NSCameraUsageDescription and
NSMicrophoneUsageDescription). License: NativeMindNONC. Provenance: PROVENANCE.md.