html5-audio - 是否可以使用 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 音频元素播放 RingCentral 通话录音,而无需自己下载和托管音频文件。仍然需要授权,因此必须使用 HTTP 标头以外的方法进行传递。
两种方法包括:
1) 查询字符串中的访问令牌
您可以将访问令牌作为查询参数附加到媒体 URL,这样您就有了类似的内容:
<audio
src="https://media.ringcentral.com/.../{recordingId}?access_token=MyToken">
</audio>
这种方法的一个警告是,当访问令牌过期时,URL 将停止工作,通常在一小时或更短的时间内。这对于诸如聊天流中的时间敏感链接之类的临时链接很有用,但是,如果稍后需要检索链接,则不太有用。为此,请参阅以下方法。
2) Cookie 中的访问令牌
如果您想要一个不会过期的永久 URL,您可以使用为您管理身份验证的代理服务。一种方法是使用 RingCentral 基于 cookie 的隐式授予 OAuth 流将访问令牌传输到代理服务。这样,当尝试通过 URL(没有令牌)检索媒体文件时,代理服务可以检查 cookie 是否存在且有效。如果不是,代理服务可以在转发到通话记录媒体文件之前提示成功的隐式授予登录。此处提供了一个示例实现:
推荐阅读
- python - 如何在 Django 中使用 BeautifulSoup?
- angular - 即使在 angular.json 中有正确的路径,Angular 也会显示样式 scss 错误
- javascript - 具有隐藏表单值选项的远程用户地址
- javascript - 页面可见性检测 - 不知道如何设置初始状态
- asp.net-mvc - Asp.Net MVC EF Web 应用的 Azure SQL 用户和连接字符串
- kibana - Kibana 无痛脚本字段
- java - 如何增加存储在整数列表java中的值
- arduino - 延迟防止键盘输入直到它结束
- java - 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' 在空对象引用 &
我试图在我的
Home
活动中定义一个按钮来打开我的Settings
活动,但我得到了错误:- java - 尝试在空对象引用上调用虚拟方法“java.lang.String Model.User.getPhone()”