首页 > 解决方案 > 是否可以使用 HTML5 音频元素播放 RingCentral 通话录音?

问题描述

当使用 RingCentral 通话记录访问通话录音音频文件时,对象中contentUri提供了response.record[x].recording一个指向二进制形式的通话音频的对象。API 的Authorization标头仍然是检索此文件所必需的。

是否可以使用 HTML5 音频元素在 Web 应用程序中播放它,这样我们就不必托管/上传来调用我们自己的系统的音频。似乎这需要避免使用Authorization标头并以其他方式提供授权。例如:

<audio src="https://media.ringcentral.com/.../recording/{recordingId}"></audio>

有关 HTML5 音频元素的更多信息,请参见此处:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

标签: html5-audioringcentralcall-recording

解决方案


可以使用 HTML5 音频元素播放 RingCentral 通话录音,而无需自己下载和托管音频文件。仍然需要授权,因此必须使用 HTTP 标头以外的方法进行传递。

两种方法包括:

1) 查询字符串中的访问令牌

您可以将访问令牌作为查询参数附加到媒体 URL,这样您就有了类似的内容:

<audio 
  src="https://media.ringcentral.com/.../{recordingId}?access_token=MyToken">
</audio>

这种方法的一个警告是,当访问令牌过期时,URL 将停止工作,通常在一小时或更短的时间内。这对于诸如聊天流中的时间敏感链接之类的临时链接很有用,但是,如果稍后需要检索链接,则不太有用。为此,请参阅以下方法。

2) Cookie 中的访问令牌

如果您想要一个不会过期的永久 URL,您可以使用为您管理身份验证的代理服务。一种方法是使用 RingCentral 基于 cookie 的隐式授予 OAuth 流将访问令牌传输到代理服务。这样,当尝试通过 URL(没有令牌)检索媒体文件时,代理服务可以检查 cookie 是否存在且有效。如果不是,代理服务可以在转发到通话记录媒体文件之前提示成功的隐式授予登录。此处提供了一个示例实现:

https://github.com/tylerlong/permalink


推荐阅读