在运行Chrome应用程序的Windows中,我可以毫无问题地接收广播数据包.但是,当我使用该应用程序并使用cordova/crosswalk工具进行编译时,我似乎无法接收任何数据包.我看到wireshark中的所有数据包.我的数据包从172.24.0.42传输,并在172.24.255.255上广播(255.255.255.255上的广播在Android上不起作用,但它在Windows Chrome应用程序上有效).
这是我的(manifest.json):
"sockets":{
"udp": {
"bind": "*"
}
},
"permissions":["system.network" , "power"],
Run Code Online (Sandbox Code Playgroud)
这是我的网络代码:
chrome.sockets.udp.create({}, function(socketInfo) {
socketId = socketInfo.socketId;
// Setup event handler and bind socket.
chrome.sockets.udp.onReceive.addListener(onReceive);
chrome.sockets.udp.bind(socketId, "0.0.0.0", 4213, function(result) {
if (result < 0) {
console.log("Error binding socket.");
return;
}
//chrome.sockets.udp.send(socketId, arrayBuffer, '127.0.0.1', 1337, function(sendInfo) {
// console.log("sent " + sendInfo.bytesSent);
// })
//chrome.sockets.udp.setBroadcast(socketId, true, function(){})
});
});
Run Code Online (Sandbox Code Playgroud)
这是我收到数据包的时候:
var onReceive = function(info) {
if (info.socketId !== socketId)
return;
chrome.sockets.udp.setPaused(socketId, true, function(){}); // Set socket paused; Essentially …Run Code Online (Sandbox Code Playgroud) 使用这个例子http://www.w3schools.com/tags/tag_datalist.asp - 我在浏览器中没有问题,但它似乎不适用于打包的应用程序.
我在Chrome v26上.版本26.0.1410.64 m.在Windows上.
我在设置高速视频的捕获请求时遇到一些问题。我打算在 Nexus 6P 上以 120 FPS 进行拍摄。我将最小 API 设置为 23,因为我不打算将此应用程序部署到任何其他手机。
我不太明白的是如何让我的捕获请求发挥作用。现在,我正在尽力更改谷歌示例中 Camera2Video 示例中的代码。来自 Google 的示例链接
这是所有相关代码:
private void startPreview() {
if (null == mCameraDevice || !mTextureView.isAvailable() || null == mPreviewSize) {
return;
}
try {
setUpMediaRecorder();
SurfaceTexture texture = mTextureView.getSurfaceTexture();
assert texture != null;
texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
List<Surface> surfaces = new ArrayList<Surface>();
Surface previewSurface = new Surface(texture);
surfaces.add(previewSurface);
mPreviewBuilder.addTarget(previewSurface);
Surface recorderSurface = mMediaRecorder.getSurface();
surfaces.add(recorderSurface);
mPreviewBuilder.addTarget(recorderSurface);
mCameraDevice.createConstrainedHighSpeedCaptureSession(surfaces, new CameraCaptureSession.StateCallback() {
//mCameraDevice.createCaptureSession(surfaces, new CameraCaptureSession.StateCallback() {
@Override
public void onConfigured(CameraCaptureSession …Run Code Online (Sandbox Code Playgroud)