Sha256: ad4cf80134f53524a56a3ef156c5ce23d8ad2dbd13ba7ac6aabf40542370b996

Contents?: true

Size: 1.5 KB

Versions: 62

Compression:

Stored size: 1.5 KB

Contents

/* */ 
"format cjs";
webshim.register('usermedia-core', function($, webshim, window, document, undefined, options){
	"use strict";

	var srcObjectName = webshim.prefixed('srcObject', document.createElement('video'));
	var addUnPrefixed = function(){
		navigator.getUserMedia = navigator[webshim.prefixed('getUserMedia', navigator)];
	};

	if(srcObjectName != 'srcObject'){
		var hasURL = !!(window.URL && URL.createObjectURL);
		webshim.defineNodeNamesProperty(['audio', 'video'], 'srcObject', {
			prop: {
				get: function(){
					return this[srcObjectName] || null;
				},
				set: function(stream){
					if(srcObjectName){
						$.prop(this, srcObjectName, stream);
					} else {
						$.prop(this, 'src', hasURL ? URL.createObjectURL(stream) : stream);
					}
				}
			}
		});
	}

	(function(){
		var streams = {};
		var _nativeCreateObjectURL = URL.createObjectURL;
		var _nativeRevokeObjectURL = URL.revokeObjectURL;

		URL.createObjectURL = function(stream){

			var url = stream;
			if(_nativeCreateObjectURL && !stream._wsStreamId){
				url = _nativeCreateObjectURL.apply(this, arguments);
			} else if(stream._wsStreamId) {
				url = stream._wsStreamId;
				streams[url] = stream;
			}
			return url;
		};

		URL.revokeObjectURL = function(url){
			if(streams[url]){
				delete streams[url];
			} else if (_nativeRevokeObjectURL){
				return _nativeRevokeObjectURL.apply(this, arguments);
			}
		};
	})();


	webshim.ready(webshim.modules["usermedia-shim"].loaded ? 'usermedia-api' : 'usermedia-shim', addUnPrefixed);
});

Version data entries

62 entries across 31 versions & 1 rubygems

Version Path
sequenceserver-3.1.3 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-3.1.3 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-3.1.2 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-3.1.2 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-3.1.1 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-3.1.1 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-3.1.0 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-3.1.0 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-3.0.1 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-3.0.1 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-3.0 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-3.0 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-2.2.0 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-2.2.0 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-2.1.0 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-2.1.0 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-2.0.0 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-2.0.0 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js
sequenceserver-2.0.0.rc8 public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/usermedia-core.js
sequenceserver-2.0.0.rc8 public/vendor/npm/webshim@1.15.8/src/shims/usermedia-core.js