java - 使用 Twilio Java Sdk v7.x 将 Twilio Recording 下载为输入流

标签 java twilio twilio-api

我正在努力将当前的 Twilio Java SDK 客户端从版本 6.x 升级到版本 7.x 。 我遇到的问题之一是检索录音的输入流。 下面是我拥有的代码的 6.x 版本示例,但无法找到一种方法来检索 7.x 版本中记录的 InputStream 。 (当前为 7.0.0-rc10) 您能否指导我做错了什么?

代码片段版本=“6.x”

public InputStream retrieveRecording(String recordingSid) {
    Recording recordingToRetrieve = new Recording(twilioRestClient, recordingSid);
    recordingToRetrieve.setRequestAccountSid("xxxxxxxxx");
    return recordingToRetrieve.getMedia(".mp3");
}

代码片段版本=“7.x”

public InputStream retrieveRecording(String recordingSid) {
    Recording recordingToRetrieve = Recording.fetch("xxxxxxxxx", recordingSid).execute();
    //How do I get the mp3 media as an Input stream ?
}

最佳答案

不幸的是,目前 Twilio SDK V7 7.0.0-rc-10 中没有简单的方法来检索用于录制的输入流,理想情况下应该将其内置到 SDK 中,但与此同时,以下是我解决此问题的方法检索下载的问题

 private InputStream retrieveRecording(String accountSid, String authToken, String recordingSid) {
    Twilio.init(accountSid, authToken);
    Recording recordingToRetrieve = Recording.fetch(accountSid, recordingSid).execute();
    String uri = recordingToRetrieve.getUri();
    String mp3Uri = uri.replace(".json", ".mp3");
    Request request = new Request(
            HttpMethod.GET,
            TwilioRestClient.Domains.API,
            mp3Uri,
            accountSid);
    Response mp3response = Twilio.getRestClient().request(request);
    if (mp3response == null) {
        throw new ApiConnectionException("Recording media fetch failed: Unable to connect to server");
    } else if (!TwilioRestClient.SUCCESS.apply(mp3response.getStatusCode())) {
        RestException restException = RestException.fromJson(mp3response.getStream(), Twilio.getRestClient().getObjectMapper());
        if (restException == null) {
            throw new ApiException("Server Error, no content");
        }

        throw new ApiException(
                restException.getMessage(),
                restException.getCode(),
                restException.getMoreInfo(),
                restException.getStatus(),
                null);
    }
    return mp3response.getStream();
}

关于java - 使用 Twilio Java Sdk v7.x 将 Twilio Recording 下载为输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44038512/

相关文章:

java - 对象化实体 - 重用问题

java - Android:操作栏内的 AppCompatActivity 和 textview

php - Twilio rest api,发送短信

python - 使用 Twilio 可编程语音 SDK 的通话质量差

c# - 如何使用 TWILIO ASP.Net Web API 发送和验证 OTP

java - Eclipse:Spring Explorer 不显示使用 Java 文件配置的 beans

java - JSplitPane 调整光标大小

PHP Twilio 无法过滤消息

python - TwilioRestClient 已删除

node.js - 如何在调用 twilio 调用时获取 session Sid