我想将iOS设备(版本11及更高版本)的视频流发送到服务器(使用iOS上的html5从客户端发送).对于其他浏览器,我从中获取流navigator.getUserMedia,并使用mediaRecorder和WebSocket将其传递给服务器:
this.mediaRecorder = new MediaRecorder(this._stream);
this.mediaRecorder.start(50);
this.mediaRecorder.ondataavailable = function(e) {
app.socket.emit("frameRequest", e.data);
}
Run Code Online (Sandbox Code Playgroud)
但是,iOS不支持MediaRecorder.是否有从iOS设备发送流的替代方案?
我需要使用随机功能,但也可以在不同的设备(PC/iOS/Android)上重复使用.我正在运行此示例代码,以调整向量:
#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <vector>
int main() {
std::mt19937 generator(1337);
std::cout << "Your seed produced: " << generator() << std::endl;
std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
std::shuffle(v.begin(), v.end(), generator);
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
两台不同PC(窗口)的输出:
Your seed produced: 1125387415
10 6 8 1 7 2 4 3 5 9
Run Code Online (Sandbox Code Playgroud)
iOS输出:
Your seed produced: 1125387415
9 1 4 6 …Run Code Online (Sandbox Code Playgroud) 我们想使用后置摄像头进行扫描,并选择正确的后置摄像头——主摄像头,而不是广角镜头。
较新的移动设备(例如,三星 Galaxy s10)有多个前置和后置摄像头。当调用 enumerateDevices() 时,我们会得到一个前后摄像头列表。我们想从后置摄像头列表中选择主摄像头。我们可以使用约束来选择后置摄像头(面向:“环境”),但我们不知道如何为每个设备判断摄像头是主摄像头还是广角镜头。
navigator.mediaDevices.enumerateDevices().then(function (devices) {
for(var i = 0; i < devices.length; i ++){
var device = devices[i];
if (device.kind === 'videoinput') {
//any useful device info here?
}
}
});
Run Code Online (Sandbox Code Playgroud)