2013-02-12 74 views
0

我们在我们的Android应用程序(使用sencha和phonegap的混合应用程序构建)中使用了callfire API。该应用程序的概念是在列表中显示录制的呼叫,并单击列表中的任何呼叫时,它将播放录制的音频文件(.wav格式)。现在问题是我们无法在我们的应用程序中播放该文件。我们也尝试在Android手机浏览器上直接播放该网址,但它也无效。无法播放来自callfire API的.wav文件

这里是音频文件格式https://www.callfire.com/cloud/1/files/recording/dynamic/864c81f4a8e6a898042cb47251ca1c85/2012/8/6065312/cid_1319779221_1.wav

的URL之一,当我们把这个音频文件在我们的服务器并试图发挥它我们的应用,它的工作完美。

请问您能告诉我们背后的原因是什么?

我们使用三星Galexy Y软件版本2.2进行测试。

回答

0

您可以使用HTML5音频测试here来检查它是否支持您的设备的浏览器,但它听起来好像不是。

0

看起来您正在引用较早版本的CallFire API。有一个新的界面加上一个提供GetSoundData方法的新API。调用此方法将返回原始MP3数据,您还可以请求WAV。

https://www.callfire.com/api-documentation/version/1.1/CallService/GetSoundData

文档提供了一个PHP的例子,但这些参数应该是相同的,如果你的端口成另一种语言。

<?php 
/** 
* You'll need your login/password pair when you create the SOAP client. 
* Don't use the fake login/password provided here; it's just for show and 
* won't work. 
*/ 
$wsdl = "http://callfire.com/api/1.1/wsdl/callfire-service-http-soap12.wsdl"; 
$client = new SoapClient($wsdl, array(
    'soap_version' => SOAP_1_2, 
    'login'  => 'YourLoginId',  
    'password'  => 'YourPassword')); 
/** 
* GetSoundData. Get raw binary sound data (MP3 or WAV) for stored sound asset. 
*/ 
$request = new stdclass(); 
$request->Id = 9; // long required 
$request->Format = 'MP3'; // SoundFormat [WAV, MP3] 
$response = $client->GetSoundData($request); 
$byteCount = file_put_contents("my_returned_sound.mp3", $response); 
echo "byteCount: " . $byteCount; 
// Sample response: 
// byteCount: 22749 
?>