# 在线播放 (/zh-CN/realtime-media/cloud-recording/build/manage-recorded-files/play-online)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

## 功能描述 [#功能描述]

使用声网云端录制服务完成录制后，录制的内容会以 TS 文件形式上传到你设定的第三方云存储中，同时生成一个 M3U8 文件用于索引所有的 TS 文件。你可以在你的第三方云存储中获得该 M3U8 文件的链接，直接在线播放录制文件。

:::warning[注意]
声网云端录制服务不支持在线播放录制生成的 WebM 文件。
:::

## 前提条件 [#前提条件]

开始前，请参考[使用 RESTful API 开始云端录制](/zh-CN/realtime-media/cloud-recording/get-started/quick-start)进行一次完整的录制流程体验，并且确保录制文件已上传到你设定的第三方云存储中。

## 实现方法 [#实现方法]

下面分别介绍[阿里云](https://www.aliyun.com/product/oss)、[腾讯云](https://cloud.tencent.com/product/cos) 和 [AWS S3](https://aws.amazon.com/cn/s3/?nc=sn&loc=0) 如何在线播放录制文件。

以下实现中，读写权限设置均以存储桶 (Bucket) 为单位。为提高安全性，你也可以选择以单个录制文件为单位设置读写权限。

<Tabs defaultValue="aliyun" groupId="vendor" persist>
<TabsList>
  <TabsTrigger value="aliyun">阿里云</TabsTrigger>
  <TabsTrigger value="tencent">腾讯云</TabsTrigger>
  <TabsTrigger value="amazon">AWS S3</TabsTrigger>
</TabsList>

<TabsContent value="aliyun">

参考如下步骤使用阿里云云存储实现在线播放：

1. 登录阿里云控制台，进入你设定的录制存储空间 (Bucket)，在**文件管理**页面可以看到 M3U8 和 TS 文件。

2. 在**基础设置**页面将**读写权限**设置为**公共读**或**公共读写**，点击**保存**。

![阿里云 OSS 文件管理页面中的基础设置页面](https://web-cdn.agora.io/docs-files/1556438995486)

3. 在**文件管理**页面，M3U8 文件右侧点击**详情**，进入**详情**页。

![阿里云 OSS 文件详情页面](https://web-cdn.agora.io/docs-files/1583887201814)

4. 在**详情**页面，选择**复制文件 URL**，如下图所示：

![阿里云 OSS 复制文件 URL 入口](https://web-cdn.agora.io/docs-files/1583887227648)

5. 在浏览器上输入复制的外链地址即可开始在线播放。

</TabsContent>

<TabsContent value="tencent">

参考如下步骤使用腾讯云云存储实现在线播放：

1. 登录腾讯云控制台，点击**存储桶列表**。

2. 选择你要播放的存储桶 (Bucket)，点击**配置管理**，进入**存储桶访问权限**页面。

3. 将**公共权限**设置为**公有读私有写**或**公有读写**，点击**保存**。

![腾讯云 COS 存储桶访问权限设置页面](https://web-cdn.agora.io/docs-files/1571369998043)

4. 回到**存储桶列表**页面，点击你要播放的存储桶，选择**详情**，进入**对象属性**标签页。在**基本信息**一栏，复制**对象地址**：

![腾讯云 COS 对象属性页面中的对象地址](https://web-cdn.agora.io/docs-files/1571369926906)

5. 在浏览器上输入复制的外链地址即可开始在线播放。

</TabsContent>

<TabsContent value="amazon">

参考如下步骤使用 AWS 实现在线播放：

1. 登录 AWS S3 控制台，进入云端录制使用的存储桶 (Bucket)，将文件属性分别设置成如下：

   1. 选中 M3U8 文件，点击**操作** ，选择**更改元数据**。

![AWS S3 更改对象元数据入口](https://web-cdn.agora.io/docs-files/1589166303624)

   2. 将 **Content-Type** 键值设为 **application/x-mpegURL**（需手动输入）。

![AWS S3 设置 Content-Type 元数据](https://web-cdn.agora.io/docs-files/1556165160391)

   3. 选中所有的 TS 文件，将 **Content-Type** 设为 **video/MP2T**。

2. 配置存储桶策略使 Bucket 能被公开访问。在**权限**页面点击**存储桶策略**，填入以下代码（将 `<YourBucketName>` 修改为你的 Bucket）：

![AWS S3 存储桶策略配置页面](https://web-cdn.agora.io/docs-files/1556165186768)

   ```json
   {
     "Version": "2012-10-17",
     "Id": "Policy1553255976836",
     "Statement": [
       {
         "Sid": "Stmt1553255974279",
         "Effect": "Allow",
         "Principal": "*",
         "Action": "s3:*",
         "Resource": "arn:aws:s3:::<YourBucketName>"
       }
     ]
   }
   ```

3. 选中 M3U8 文件查看 URL 地址。

![AWS S3 M3U8 文件对象 URL 示意图](https://web-cdn.agora.io/docs-files/1556165198691)

4. 在浏览器上输入 M3U8 文件的 URL 即可开始在线播放。

</TabsContent>
</Tabs>

## 开发注意事项 [#开发注意事项]

使用在线播放功能时，你需要关注以下开发注意事项：

- Safari 浏览器可以直接播放 M3U8 文件，其他浏览器可能需要安装 HLS 播放插件。
- 支持 HLS 协议的播放器也可以播放 M3U8 文件，如 VLC media player。
- 因 iOS 系统和浏览器对 M3U8 格式的支持有限，你在某些版本的 iOS 系统或某些浏览器上可能会遇到无法播放 M3U8 格式的文件。
- 如果录制结束后收到的响应中 `uploadingStatus` 为 `"backuped"`，说明有部分录制内容上传到了备份云，必须等备份云将这部分文件上传到云存储之后才可以播放 M3U8 文件。
- 设置公有读权限的目的是使 Bucket 中的文件能被公开访问。如你无需在线播放录制文件，为提高安全性，建议你将 Bucket 的权限设置为私有。
