【问题标题】:Xamarin forms: Issue while playing recorded calls in TwilioXamarin 表单:在 Twilio 中播放录音通话时出现问题
【发布时间】:2022-01-23 17:48:01
【问题描述】:

我正在使用 Twilio API 来获取 Twilio 通话记录。我想要 .mp3 格式的相应通话录音。我们正在访问录制的 URL,但这是 .json 格式,因此我们将 .json 替换为 .mp3 并在开头使用以下代码添加了https://api.twilio.com

    var recordings = RecordingResource.Read(
                callSid: sid,
                limit: 1
    );, 
    foreach (var item in recordings)
    {
        recordUrl = "https://api.twilio.com" + item.Uri.Replace(".json", ".mp3");
    }

但我们无法播放录音。

我们怀疑 Enforce HTTP Auth on Media URLs 目前其状态是否为已启用。如果我们禁用它,是否存在任何安全问题?禁用后我们可以播放音频吗?如果我们从移动应用程序访问 Twilio,应该对媒体 URL 实施什么 HTTP Auth 状态?

【问题讨论】:

  • 你是如何尝试播放电话的?你得到什么错误或异常?您确定您使用的网址正确吗?
  • @Jason 预计不会出现错误。我们正在尝试使用 mm:VideoView 播放,并且给出的 URL 根据此线程 stackoverflow.com/questions/68282968/… 是正确的
  • 您是否尝试过从桌面音频工具播放网址?如果您在播放文件之前将文件下载到本地会怎样?这样行吗?
  • @Jason 我们尝试从 Chrome 播放它,但它一次又一次地显示相同的对话框 i.stack.imgur.com/VrCJW.png。
  • 听起来你可能需要在播放之前使用 auth 在本地下载录音,或者使用支持使用 auth 凭据的媒体播放器。或者您可以询问 Twilio 是否有禁用身份验证的方法

标签: xamarin.forms twilio


【解决方案1】:

禁用“对媒体 URL 强制执行 HTTP 身份验证”选项,以便您可以使用 URL 访问文件而无需身份验证。

当“对媒体 URL 强制执行 HTTP 身份验证”选项被禁用时,任何拥有帐户 SID 和录制 SID 的人都可以访问 .mp3 文件。另一方面,启用该选项后,您可能必须使用您的 Account SID 和 Auth Token 才能访问录制文件。

如果您需要使用 HTTP 基本身份验证来确保录制内容的安全,我建议启用“对媒体 URL 强制执行 HTTP 身份验证”选项并下载发出 HTTP 请求的 .mp3 文件;这是一个如何发出请求的代码示例。

using RestSharp;
using RestSharp.Authenticators;
using RestSharp.Extensions;

var client = new RestClient("https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/Recordings/RExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.mp3​");
var request = new RestRequest(Method.GET);
client.Authenticator = new HttpBasicAuthenticator("Account_SID", "Token_Auth");
IRestResponse response = client.Execute(request);
client.DownloadData(request).SaveAs("/your_path/recording_file.mp3");

【讨论】:

    猜你喜欢
    • 2014-01-19
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多