使用 Twilio Java Sdk v7.x 下载 Twilio 记录作为 InputStream

Download Twilio Recording as an InputStream using Twilio Java Sdk v7.x

我正在努力将我们当前的 Twilio Java SDK 客户端从 6.x 版本升级到 7.x 版本。 我遇到的问题之一 运行 是检索 InputStream 以进行记录。 下面是版本 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 中没有简单的方法来检索用于记录的 InputStream,理想情况下,它应该内置到 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();
}