更新时间:2026-04-10 GMT+08:00
分享

启动云手机串流

方法名称

boolean start(PlayerFragment fragment, final Bundle bundle)

功能描述

启动云手机串流。该方法用于启动云手机的串流功能,将云机画面和音频传输到本地设备。

参数说明

字段名

类型

说明

fragment

PlayerFragment

播放器Fragment,用于显示云机画面,可以为null

bundle

Bundle

启动参数,包含云机连接信息,如IP地址、端口、用户ID等

以下参数可通过Bundle对象在启动云手机串流时进行自定义配置:

  • 基础连接参数(必填)

    参数键

    类型

    默认值

    说明

    LAUNCH_KEY_ADDRESS

    String

    云机IP地址(必填),由后台返回的服务端地址

    LAUNCH_KEY_PORT

    int

    0

    云机端口号(必填),由后台返回的服务端口

    LAUNCH_KEY_TOKEN

    String

    随机生成

    认证令牌(必填),用于云机身份校验,校验失败返回错误码100002

    LAUNCH_KEY_USERID

    String

    用户标识(必填),多云机场景下的用户唯一ID

  • 音视频配置参数(选填)

    参数键

    类型

    默认值

    说明

    LAUNCH_KEY_FREE_ASPECT

    boolean

    true

    自由比例开关,true:允许自定义分辨率

    LAUNCH_KEY_WIDTH

    int

    1080

    画面宽度(像素),自由比例开启时生效

    LAUNCH_KEY_HEIGHT

    int

    1920

    画面高度(像素),自由比例开启时生效

    LAUNCH_KEY_ASAM_INV

    int

    10

    音频采样间隔(毫秒),可选值:10或20

    LAUNCH_KEY_ASAM_RATE

    int

    48000

    音频采样率,可选值:8000/44100/48000

    LAUNCH_KEY_ACH_COUNT

    int

    2

    音频声道数

    • 1:单声道
    • 2:双声道

    LAUNCH_KEY_ABUF_SIZE

    int

    0

    音频缓冲区大小

    • 0:自动调整
    • 1:最小缓冲
  • 高级配置

    参数键

    类型

    默认值

    说明

    LAUNCH_KEY_VIDEO_PERF

    int

    2

    性能日志开关,开启后收集视频性能数据

    LAUNCH_KEY_EVENT_EXECUTOR

    int

    0

    执行器选择

    • 1:Ignition执行器(IGNITION_EXECUTOR),任务会通过Ignition策略调度执行, 适用于端侧低算力场景
    • 0:EventLoop执行器(LOOP_EXECUTOR),任务通过传统的EventLoop策略执行, 适用于大部分普通场景

    LAUNCH_KEY_HIDE_STREAM_AT_START_UP

    boolean-

    false

    启动时串流画面选项,用于控制串流启动时是否显示画面的配置项,通过设置该值为true,可以实现串流启动时隐藏画面,便于开发者进行页面初始化或动画加载等操作

    注意事项

    1. 标有必填的参数必须提供有效值,否则可能导致连接失败。
    2. 加密参数在公有云部署环境下强制生效。
    3. 分辨率参数仅在LAUNCH_KEY_FREE_ASPECT=true时生效。
    4. 通过createBundle(userId, Map)可扩展自定义参数。

    Bundle初始化参数配置示例

    public Bundle createBundle(String address, int aport, int atype, String token, String userId, int width, int height) {
        Bundle bundle = new Bundle();
    
        // 基础连接参数
        bundle.putString(LAUNCH_KEY_ADDRESS, address);  // 云机ip,后台返回
        bundle.putInt(LAUNCH_KEY_PORT, aport);         // 云机端口,后台返回
        bundle.putInt(LAUNCH_KEY_TYPE, atype);         // 后台返回
        bundle.putString(LAUNCH_KEY_TOKEN, token);     // 校验token,后台返回,云机校验失败会返回100002异常码
        bundle.putString(LAUNCH_KEY_USERID, userId);                      // 多云机共用用户id,可用用户登录id,也可自定义
    
        // 个性化视频配置
        bundle.putBoolean(LAUNCH_KEY_FREE_ASPECT, true);                  // 开启自由比例
        bundle.putInt(LAUNCH_KEY_WIDTH, width);                    // 任意分辨率宽
        bundle.putInt(LAUNCH_KEY_HEIGHT, height);                  // 任意分辨率高
    
        // 个性化音频配置
        bundle.putInt(LAUNCH_KEY_ASAM_INV, 10);        // 音频采样间隔:10或20
        bundle.putInt(LAUNCH_KEY_ASAM_RATE, 48000);    // 音频采样率:8000、44100、48000
        bundle.putInt(LAUNCH_KEY_ACH_COUNT, 2);        // 音频声道数:1-单声道,2-双声道
        bundle.putInt(LAUNCH_KEY_ABUF_SIZE, 0);        // 端侧音频缓冲大小:0-自动大小,1-最小
    
        // 高级配置
        bundle.putInt(LAUNCH_KEY_VIDEO_PERF, 2);                     // 开启性能日志
    
        return bundle;
    }

返回值

boolean:成功返回true,失败返回false。

调用示例

// 启动自定义串流Activity
private void startCloudPhoneStream() {
    // 准备串流参数(这些参数通常从服务器获取)
    String address = "192.168.1.100";    // 云机IP
    int aport = 10000;                   // 云机端口
    int atype = 1;                       // 类型
    String token = "your_token_here";    // 认证token
    String userId = "user_123";          // 用户ID
    int width = 1080;                    // 分辨率宽
    int height = 1920;                   // 分辨率高

    // 创建Bundle参数
    Bundle bundle = createBundle(address, aport, atype, token, userId, width, height);

    // 启动Activity
    Intent intent = new Intent(this, CustomCloudPhoneActivity.class);
    intent.putExtras(bundle);
    startActivity(intent);
}

注意事项:

  • 必须先调用init方法,否则SDK未初始化将导致启动失败。
  • bundle必须包含必要的连接参数,否则启动失败。
  • 建议使用try-catch包裹该方法调用,以捕获可能的异常。

相关文档