展示文件

  • Android

更新时间不可用

了解 Fastboard SDK 在不同平台上的展示文件方式,包括接入流程、关键配置和平台差异。

声网 Fastboard SDK 支持在白板中插入和展示多种形式的文件,例如图片、音视频和文档,帮助用户快速分享丰富多元的信息,创造沉浸式的互动体验。本文介绍如何调用 Fastboard SDK 的 API 插入图片、演示文档和播放音视频。

插入图片

声网 Fastboard SDK 提供 insertImage 方法,用于在白板主窗口中插入并展示图片。你只需调用该方法,并传入图片的 URL、宽和高,即可在白板上展示指定图片。

开始前,请确保满足以下条件:

  • 在项目中集成声网 Fastboard SDK 并加入房间。详见加入白板房间。
  • 准备好图片的 URL 地址并确保 App 客户端能够访问该 URL,否则图片无法正常展示。
  • 确保图片的格式为 PNG、JPG/JPEG 或 WEBP。

下面在加入白板房间的示例项目基础上添加代码,展示如何在白板中插入一张图片。

  1. 用如下代码替换 MainActivity 文件中的 fastRoom.join():

    Kotlin
    // 加入房间
    fastRoom.join { room ->
        // 调用 insertImage 并传入图片的 URL,宽和高
        room.insertImage("https://test.com/cloud-storage//ebxxxeda.png", 512, 512)
    }
  2. 运行项目。App 重启后,可以在白板页面看到插入的图片。

注意

目前 Fastboard SDK 没有为插入图片功能提供 UI,你需要自行实现。

播放音视频

声网 Fastboard SDK 集成了内置插件 MediaPlayer,用于播放音视频文件。你只需调用 Fastboard SDK 的 insertVideo 方法,传入音视频文件的 URL 地址和窗口标题,即可在白板子窗口中播放音视频。

开始前,请确保满足以下条件:

  • 在项目中集成声网 Fastboard SDK 并加入房间。详见加入白板房间。
  • 准备好音频或视频文件的 URL 地址并请确保 App 客户端能够访问该 URL,否则音视频文件无法播放。
  • 确保要播放的音频文件为 MP3 格式,视频文件为 MP4 格式(推荐使用 h264 编码格式的 MP4 文件,否则可能会有兼容性问题)。

下面在加入白板房间的示例项目基础上添加代码,展示如何在白板中插入并播放音视频文件。

  1. 用如下代码替换 MainActivity 文件中的 fastRoom.join():

    Kotlin
    fastRoom.join { room ->
        // 调用 insertVideo 并传入音视频文件的 url 和子窗口标题
        room.insertVideo("https://test.com/cloud-storage/55xxx37.mp4", "test1.mp4")
    }
  2. 运行项目。App 重启后,可以在白板页面上看到名为 test1.mp4 的子窗口,点击开始按钮,即可播放视频。

注意

目前 Fastboard SDK 没有为插入音视频功能提供 UI,你需要自行实现。

演示文档

声网 Fastboard SDK 集成了内置插件 DocsViewer,用于展示文档。成功使用声网文档转换服务完成文档转换后,只需调用 Fastboard SDK 的 insertDocs 方法,并传入文档转换任务的 Task UUID 和 Task Token 等信息,即可在白板子窗口中分页演示文档。

开始前,请确保满足以下条件:

具体实现步骤如下:

  1. 将源文件上传至第三方云存储,调用发起文档转换,创建一个文档转换任务。请求成功后,声网服务端会在响应包体中返回 uuid,即文档转换任务的 Task UUID。
  2. 调用生成 Task Token 并在请求路径中传入 uuid,为文档转换任务生成一个 Task Token。
  3. 加入白板房间后,调用 insertDocs 方法,并通过该方法的 params 参数传入如下信息:
    • taskUUID:String。文档转换任务的 Task UUID。
    • taskToken:String。文档转换任务的 Task Token。
    • fileType:String。文档类型。pdf 表示静态文档;pptx 表示动态文档。
    • title:String。窗口标题。

下面在加入白板房间的示例项目基础上添加代码,展示如何插入并展示一个带动画效果的 PPTX 文件。

  1. 成功发起并完成了动态文档转换,获取了转换任务的 Task UUID 和 Task Token。

  2. 用如下代码替换 MainActivity 文件中的 fastRoom.join():

Kotlin
// 加入房间
fastRoom.join { room ->
    // 文档的参数设置
    val params = FastInsertDocParams("Task UUID", "Task Token", "pptx", "演示文档")
    // 调用 insertDocs 插入文档,并监听插入文档结果回调
    room.insertDocs(
        params,
        object : FastResult<String> {
            override fun onSuccess(value: String) {}

            override fun onError(exception: Exception?) {}
        }
    )
}
  1. 运行项目。App 重启后,可以在白板页面上看到名为演示文档的子窗口,点击切页箭头,即可分页演示文档。

注意

目前 Fastboard SDK 没有为演示文档功能提供 UI,你需要自行实现。

当前版本的课件接口

FastRoom.insertPresentation、insertDocs、dispatchDocsEvent、getPageState、querySlidePageState、setUnifiedPageStateListener、focusApp。所有结果通过 FastResult 返回;未就绪、取消或失败通过 onError 处理。

统一页面控制

MainView、DocsViewer、Slide、Presentation 的 page 从 1 开始;target 输入可为 mainView 或 appId,省略时跟随焦点。查询输出的 target 为 mainView/DocsViewer/Slide/Presentation。scale 为相对适配尺寸倍率,1 表示适配尺寸,DocsViewer 不支持 scalePage。

accepted=true 表示命令接收;accepted=false 包含 reason/message。通过统一页事件或查询观察实际状态,不能把命令回调作为首帧完成信号。

窗口与课件配置

参数行为
originSize正数 width/height 参考尺寸;MainView 与各 App 分别设置
pageScaleRange相对适配尺寸的 minScale/maxScale,均为有限正数
forceMaximized房间级强制最大化,与 useBoxesStatus 不兼容
lazySetupInMaximizedMode本端按焦点初始化,默认关闭
maxCachedAppsInMaximizedMode本端 LRU runtime 缓存,默认 4
navigationButtonModeSlide 底部按钮:page 默认按页,step 按动画步骤
syncEventQueuePolicyfifo 默认;latest-pending-render 仅合并待执行渲染页
表格内容超出当前宽度,可横向滚动查看更多列。

focusApp 的布尔值表示焦点提交完成;不能用它判断 setup 或全部资源就绪。插入课件需先转换,普通图片页可以创建 Presentation;原有静态文档 API 保持 DocsViewer 行为。