RTCPeerConnection.getStreamById()

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Obsolete
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

The RTCPeerConnection.getStreamById() method returns the MediaStream with the given id that is associated with local or remote end of the connection. If no stream matches, it returns null.

This property has been replaced with the RTCPeerConnection.getLocalStreams and RTCPeerConnection.getRemoteStreams properties. If you have code that uses stream, you will need to update, since browsers have begun to remove support for stream.

Syntax

var mediaStream = pc.getStream(id);

Parameters

id
Is a DOMString corresponding to the stream to return.

Example

var stream = pc.getStreamById(myTrackId);
if (stream) {
  console.log("Found stream: " + stream.id);
}

Polyfill

Running the following code before any other code will create RTCPeerConnection.prototype.getStreamById() if it's not natively available.

// from: https://bugs.chromium.org/p/chromium/issues/detail?id=698163&desc=5#c10
RTCPeerConnection.prototype.getStreamById = function(id) {
  try {
    var localStreams = this.getLocalStreams();
    var remoteStreams = this.getRemoteStreams();
    var i;
    for (i = 0; i < localStreams.length; i++) {
     if (localStreams[i].id == id)
       return localStreams[i];
    }
    for (i = 0; i < remoteStreams.length; i++) {
     if (remoteStreams[i].id == id)
       return remoteStreams[i];
    }
  } catch(e) {}
  return null;
}

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
getStreamById
DeprecatedNon-standard
Chrome No support 56 — 62Edge No support 15 — 79Firefox No support 22 — 53IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support 56 — 62Chrome Android No support 56 — 62Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android No support 6.0 — 8.0

Legend

Full support
Full support
No support
No support
Compatibility unknown
Compatibility unknown
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.

See also