如何从getUserMedia返回流对象
How to return stream object from getUserMedia
我想在getUserMedia之外访问streamObject。这是代码。通常你会在成功回调中运行脚本函数,但我不这样做,因为函数 getUserMedia 被多次使用,我不想重复编码相同的函数。
var streamObject;
requestDevices = {
media:function(){
navigator.getUserMedia(
{video:true, audio:true},
function(stream){
streamObject = stream;
return streamObject //not working
});
}
};
/
stream = {
// I need the streamObject here
startStream:function(stream){
pc.addStream(streamObject);
//blah blah blah
}
}
我也尝试了下面的代码,但没有工作,因为 myCallback 首先需要流。
media:function(myCallback){
navigator.getUserMedia(
{video:true, audio:true},
function(stream){
streamObject = stream;
return streamObject;
stream.startStream(streamObject);
});
}
您可以/必须使用 Promise
,例如:
var requestDevices = {
media:function() {
return new Promise(function(resolve, reject) {
navigator.getUserMedia({ video: true, audio: true }, resolve, reject);
});
}
};
var stream = requestDevices.media();
无论在何处需要流对象:
stream.then(function(s) {
Stream.startStream(s);
});
// Somewhere else
stream.then(function(s) {
...
});
如@jib所说,较新的getUserMedia
语法原生支持Promise
,因此您只需:
var stream = navigator.mediaDevices.getUserMedia({ ... })
现在,您还需要适配器.js填充物。
相关文章:
- Javascript:firstChild对象返回undefined
- Javascript对象返回垃圾值
- 从js中的对象返回一个值
- 从Javascript类对象返回函数
- 从具有最高值的对象返回属性
- 为什么我的Date对象返回当前日期
- NodeJS fs.readdr-将回调内部作为对象返回
- Leadfoot会话对象返回promise
- 如何从对象返回可读字符串
- 日期对象和ISO日期对象返回不同的日期
- 使用JavaScript's FormData对象返回整个html
- 节点.js请求对象 - 返回响应正文以供进一步操作
- 使用 Restangular 使用 RESTful API - RESTful API 将数组作为顶级对象返回是否安全
- 带有方法的 Javascript 对象返回“没有方法'我的方法名称'”错误
- 从 Date() 对象返回 dd-mm-yyyyy
- JSON 中的日期对象返回的数据被视为字符串
- Javascript - 如何获取字符串,打印单词,字符,空格,平均单词长度的#并作为对象返回
- 如何从新对象返回值,同时保留其方法
- 如何从对象返回某些键
- 从 Javascript 中的对象返回值