我正在使用Node js来获取Android手机屏幕上显示的图像。
使用adbkit,我能够获取设备的ID并建立连接(手机已连接到计算机 - Windows)
以下是应该获取图像的功能:
[RequiredIf("ISBN==\"\"")] // backslash is used for escaping the quotes
public string ISBN13 { get; set; }
[RequiredIf("ISBN13==\"\"")]
public string ISBN { get; set; }
另外,我来自:
function get_screen (device_id) {
client.framebuffer(device_id, 'jpeg', function(data) {
var png_name = 'png_name_101.jpeg'
var stream = fs.createWriteStream(png_name)
data.pipe(stream)
})
}
该函数成功创建/*
* @device_id: The serial number of the device.
* Corresponds to the device ID in client.listDevices()
*/
exports.connect_device = function(device_id) {
client.tcpip(device_id)
.then(function(port) {
return client.waitForDevice(device_id).return(port)
})
.then(function(port) {
return client.getDHCPIpAddress(device_id)
.then(function(ip) {
return client.connect(ip, port)
})
.then(function(id) {
return client.waitForDevice(id)
})
.then(function(id) {
return client.forward(id, 'tcp:9222',
'localabstract:chrome_devtools_remote')
})
})
get_screen(device_id) // <--- here
}
文件,但其大小为0KB!不是我的预期(预计会看到屏幕截图!)
P.S。没有异常被抛出。已安装GraphicMagick,jpeg
守护程序已启动并正在运行。
如何在adb
文件中获取实际屏幕?
答案 0 :(得分:0)
我设法通过这样做获得截图
client.framebuffer(device.id, 'jpeg', function(err, data){
var bufs = [];
data.on('data', function(chunk){
bufs.push(chunk);
});
data.on('end', function(){
var buffer = new Buffer.concat(bufs);
var out = fs.createWriteStream('out.jpg');
out.write(buffer);
out.end();
});
});
jpeg
和png
都应该可行。