2017-04-12 47 views
0

我实际上试图通过点击第三方API来实现Salesforce中的文本到语音转换。当我通过邮差发送请求时,我以.wav格式返回正确的响应。但是,我无法在salesforce中以编程方式处理此响应,因为我无法将响应存储在任何音频对象中。如何将在HttpResponse调用中作为Blob接收的文件转换为Salesforce Apex编码中的音频文件?

任何援助将不胜感激。

在此先感谢。 Abhishek。

回答

1

没有100的肯定你的努力做,但它会是这个样子假设您%建立你的对象正确

ResponseObject result = new ResponseObject(); 

result = (InnerClasses.ResponseObject)JSON.deserialize(json, InnerClasses.ResponseObject.class); 
+0

嗨,Eric。 非常感谢您的回复。 我已经能够以blob /字符串格式接收来自api调用的音频响应。但是,我无法将其转换为可以在处理控制器类中的响应时将其存储的格式,或者将其返回到Visualforce页面时使用的格式。作为处理音频的唯一方式,我搜索的是使用

+0

我从来没有在字符串中看到过wav格式,我不确定这看起来像什么或者你在做什么。你是否将字符串解析为对象? – EricSSH

+0

我以字符串格式发送我的请求,而从服务器获得的回复为wav格式。我想以某种方式在salesforce中保存这个对象,以便稍后让用户听到它。 而且,目前我没有将响应字符串解析为对象。会通过任何方式解析它的帮助? 我不确定解析后,结果文件会是什么! 非常感谢你对我的支持。 @EricSSH –

0

这是由IBM的沃森Salesforce的SDK支持,可here

的沃森的文本到语音服务功能测试可以发现参考方法

testSynthesize(字符串username,字符串PAS剑,字符串customizationId)

音频文件返回作为响应的一部分可以通过简单地从IBMWatsonFile创建它像本实施例中被保存为在Salesforce附件,

IBMWatsonFile resp = textToSpeech.synthesize(options); 
Attachment attachment = new Attachment(); 
attachment.Body = resp.body(); 
attachment.Name = resp.name(); 
attachment.ParentId = '<your salesforce parent id>'; 
insert attachment; 

这代码基本上使用的方法getBodyAsBlob()可用HttpResponse

在使用这种方法之前,请考虑州长限制由Salesforce在任何APEX标注上执行,请参阅标注请求或响应的最大大小记录here

相关问题