PC电脑系统上投屏、投影的鼠标相应速度优化方法

文章提出了一种优化方法,通过在录屏或投屏时将鼠标图像单独处理并实时传输,避免因视频压缩导致的鼠标位置滞后,从而提高用户体验。在MacOSX系统上,通过获取鼠标图像数据并将其与屏幕图像分开处理,可以实现投影端和使用端鼠标的几乎同步显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    电脑系统上录屏或者投屏时将获取的屏幕图像数据进行实时远程视频交互或投影演示时,演讲者操作电脑会感到投影显示的鼠标位置与自己使用的电脑显示鼠标位置有一段时间的滞后,主要原因是视频进行运动图像压缩(通常采用H.264等)的机制引起的,输出的图像帧与被采样的图像帧是有若干数目间隔帧,使用者顿挫明显体验感大受影响。相信用户和业内人员都有这样的感受。

        笔者在开发某款产品时进行了优化,体验效果明显改善。解决的方法是电脑端采集屏幕图像时包含集鼠标的图像,而将当前的鼠标图像单独处理不与录屏视频混合。实时地将鼠标图像数据流传输到远程设备,远程设备显示投影时将接收的鼠标图像数据与要显示的图像进行叠加,也就是说投影端的鼠标轨迹与使用中的电脑显示的鼠标基本同步,没有了延迟感,效果良好。

        这里举例Mac osx个人电脑系统上采集鼠标图像数据供大家参考,Windows系统也可类似的方法处理.

int getMouseBitmapData(char *buf){
        int i = 0;
        NSBitmapImageRep *bitmap=NULL;
        
        NSCursor *sysCursor = [NSCursor currentSystemCursor]; //取当前鼠标对象
        if (sysCursor == nil)
            return -1;
        NSPoint pt = [NSEvent mouseLocation];  //获取鼠标坐标
    
        bitmap = [[sysCursor.image representations] objectAtIndex: 0];  //鼠标图像数据
        if(bitmap == NULL)
            return -1;
        i = [bitmap pixelsWide]*[bitmap pixelsHigh]*[bitmap samplesPerPixel];
        memcpy(buf , [bitmap bitmapData] , i);

       return i;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值