Windows SDK

本文介绍如何使用无影云手机Windows SDK。

接口说明

1. AspClient

1.1. create

static AspClient* create(AspTicket& ticket, IAspClientCallback* callback);

接口说明:创建云电脑或云手机实例

参数:

  • AspTicktet& ticket:请求连接的参数

  • IAspClientCallback* callback:Client的回调接口

1.2. AspTicktet结构

struct AspTicket {
    std::string ticket; 			//获取云电脑或云手机的ticket字符串
    std::string id;					//桌面id
    std::string user;				//用户名
    std::string uuid;				//本机uuid,请求ticket的时候使用的uuid
    std::string systemType;			// 云电脑类型
    uint8_t partner;				//合作方
    bool isThumbnailEnable = false;	//是否是缩略图模式
};

1.3. IAspClientCallback接口

void onThumbnailUpdate(void* buffer, uint32_t width, uint32_t height, AspImageFormat format);

接口说明:缩略图更新的回调

参数:

  • buffer: 存储缩略图数据的内存地址;

  • width:缩略图的宽

  • height:缩略图的高

  • format:数据格式(YUV420P、RGBA、ARGB、NV12)等,具体参照AspImageFormat结构体的定义

void onConnectEvent(ConnectEvent &event);

接口说明:连接事件的回调

参数:

event:ConnectEvent类型的事件描述结构体

struct ConnectEvent {
    ConnectEventType type;	//连接成功、连接失败等事件类型
    int reason;				//事件触发的原因
};

1.4. destory

static void destroy(AspClient* client);

接口说明:销毁云电脑或云手机实例,需在close之后调用

参数:

client:由create创建出来的实例

1.5. open

void open();

接口说明:打开云电脑或云手机

1.6. reopen

void reopen(std::string& ticket);

接口说明:重新打开云电脑或云手机

参数:

ticket:云电脑或云手机的ticket字符串

1.7. close

void close();

接口说明:关闭云电脑或云手机

1.8. pause

void pause();

接口说明:暂停云电脑或云手机推流

1.9. resume

void resume();

接口说明:恢复云电脑或云手机推流

1.10. setVolume

void setVolume(int volumeValue);

接口说明:设置云端的音量

参数:

volumeValue:音量值

1.11. addDisplay

AspDisplay* addDisplay(IAspDisplayCallback *display);

接口说明:增加一个画面显示的画布,单屏模式下只添加一个

参数:

display:用于传递画面显示数据的回调

返回值:

画面显示窗口的实例

1.12. removeDisplay

void removeDisplay(AspDisplay *display);

接口说明:移除一个画面显示的画布

参数:

display:需要删除的显示画布

1.13. setThumbnailDisplay

void setThumbnailDisplay(uint32_t width, uint32_t height, int32_t fps);

接口说明:设置缩略图显示参数

参数:

  • width:缩略图宽

  • height:缩略图高

  • fps:缩略图帧率

1.14. resumeThumbnailDisplay

void resumeThumbnailDisplay();

接口说明:恢复缩略图更新

1.15. suspendThumbnailDisplay

void suspendThumbnailDisplay();

接口说明:暂停缩略图更新

1.16. setGraphicsQuality

void setGraphicsQuality(AspImageQuality quality);

接口说明:设置画质等级

参数:

quality:画质等级(无损、高、中、低、自动)

1.17. setGraphicsFps

void setGraphicsFps(int fps);

接口说明:设置画面的最大帧率

参数:

fps:帧率

1.18. setGraphicsBitrate

void setGraphicsBitrate(int32_t bps);

接口说明:设置最大码率

参数:

bps:码率

1.19. setAspPlayer

void setAspPlayer(AspPlayer *player);

接口说明:设置自定义的解码器,如不设置将使用ASP自带的解码器(不建议设置)

参数:

player:用户自定义的解码器

1.20. setAspAudio

void setAspAudio(AspAudio *audio);

接口说明:设置语音渲染的实例

参数:

audio:语音渲染的实例

1.21. setOutputImageFormat

void setOutputImageFormat(AspImageFormat format);

接口说明:设置输出图形的格式

参数:

format:图像数据的格式(YUV420P、RGBA、ARGB、NV12)等,具体参照AspImageFormat结构体的定义

2. AspDisplay

2.1. IAspDisplayCallback接口

void onImageFrameReady(AspImageFrame &frame);

接口说明:图像帧的数据回调

参数:

frame:图像帧数据

2.2. AspImageFrame结构

struct AspImageFrame {
    uint32_t frameId; 				//帧ID
    void* buffer;					//帧数据的buffer
    uint32_t width;					//帧的宽
    uint32_t height;				//帧的高
    AspImageFormat format;			//帧的图像存储格式
    ReleaseBuffer releaseBuffer;	//帧数据的buffer释放函数,当buffer使用完之后需要调用
};

2.3. setResolution

void setResolution(int32_t x, int32_t y, uint32_t width, uint32_t height);

接口说明:设置窗口分辨率

2.4. getResolution

AspResolution& getResolution();

接口说明:获取当前窗口的分辨率

2.5. setDpi

void setDpi(uint16_t dpi);

接口说明:设置dpi

2.6. sendMouseMove

void sendMouseMove(uint32_t x, uint32_t y, uint32_t buttonState);

接口说明:发送鼠标移动事件

参数:

  • x,y:鼠标移动目标点的坐标

  • buttonState:鼠标按钮的状态

2.7. sendMouseMoveDelta

void sendMouseMoveDelta(int32_t dx, int32_t dy, uint32_t button_state);

接口说明:发送鼠标移动事件(相对坐标)

参数:

  • dx,dy:鼠标移动的向量

  • button_state:鼠标按钮的状态(AspMouseButtonMask类型)

2.8. sendMouseClick

void sendMouseClick(AspAction action, uint32_t button, uint32_t buttonState);

接口说明:发送鼠标点击事件

参数:

  • action:up/down

  • button:鼠标点击的按钮(AspMouseButton类型)

  • buttonState:鼠标按钮的状态(AspMouseButtonMask类型)

2.9. sendMouseWheel

void sendMouseWheel(int32_t deltaX, int32_t deltaY, uint32_t buttonState);

接口说明:发送鼠标滚轮事件

参数:

  • deltaX:X方向的滚动距离

  • deltaY:Y方向的滚动距离

  • buttonState:鼠标按钮的状态(AspMouseButtonMask类型)

2.10. sendKeyEvent

void sendKeyEvent(AspAction action, int scancode);

接口说明:发送按键事件

参数:

  • action:up/down

  • scancode:按键码

2.11. sendTouchEvent

void sendTouchEvent(std::vector<AspTouchEvent>& events);

接口说明:发送触摸屏的touch事件

参数: events:触摸点的数组

3. AspAudio

3.1. onAudioFrameRender

void onAudioFrameRender(AspAudioFrame &frame);

接口说明:音频帧渲染的回调接口,当采用PUSH方式时,会通过该接口回调音频帧数据

参数:

frame:音频帧的数据结构

3.2. AspAudioFrame结构

struct AspAudioFrame {
    int sample;						//采样率
    int channels;					//通道
    int size;						//数据大小
    uint8_t *data;					//数据地址

    ReleaseBuffer releaseBuffer;	//data释放函数,在data使用完之后必须调用
};

3.3. onAudioVolumeUpdate

void onAudioVolumeUpdate(uint32_t volume);

接口说明:音量变化的接口回调

参数:

volume:音量大小

3.4. onAudioMuteUpdate

void onAudioMuteUpdate(bool isMute);

接口说明:是否静音的接口回调

参数:

isMute:是否静音

3.5. onAudioPlaybackUpdate

void onAudioPlaybackUpdate(AspAudioPlayback &playback);

接口说明:音频流更新的回调接口,当音频发生变化时会回调

参数:

playback:音频流的信息

3.6. AspAudioPlayback结构

struct AspAudioPlayback {
    AspAudioReadType readType;	//音频数据获取方式,包括PUSH和PULL两种方式
    AspAudioMode mode;			//PCM or OPUS
    uint32_t channels;			//通道数
    uint32_t frequency;			//采样率
    AspAudioFormat format;		//RAW or OPUS

    AudioReader audioReader;	//PULL读取方式时,数据读取的函数,请参照demo的实现
};

3.7. onAudioPlaybackStart

void onAudioPlaybackStart();

接口说明:音频流开始播放

3.8. onAudioPlaybackStop

void onAudioPlaybackStop();

接口说明:音频流停止播放

4. AspLogSink

4.1. setLogSink

static void setLogSink(AspLogSink *sink);

接口说明:将SDK的日志进行重定向,便于问题排查

获取SDK

请单击链接获取Windows SDK:asp-client-sdk-20250115.zip