环信 下载语音文件

来源:互联网 发布:传奇霸业内功等级数据 编辑:程序博客网 时间:2024/04/30 01:29


调用后台获取环信历史记录
  {
            "timestamp": "1450159423120",
            "nickName": "mk",
            "userId": "2a8c632cbcf64664ad126d42df5706c9",
            "targetPhoto": "/files/80746c9dd7d2015917ae30c104c051fb.jpg",
            "length": "1",
            "secret": "mEnOaqLxEeW8BVVf4ppOU2h6PPkWoDerx-Ahwr6XmsFY6Q7o",
            "filename": "1380013800320151215T140341.amr",
            "targetNickName": "xxx",
            "type": "audio",
            "photo": "",
            "url": "xxxxxxxxxxx省略xxxxxxxxxxxxxxxx"
        },

 "type": "audio"语音类型数据倒是拿到了,但是怎么去播放,环信并没有提供直接播放的api,
然后就参考环信是如果下载图片的方式来下载语音文件,最后去播放。
以下是点击语音图标播放的事件:
holder.iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final HttpFileManager httpFileMgr = new HttpFileManager(context,
EMChatConfig.getInstance().getStorageUrl());
remoteFilePath = resultEntity.getUrl();
String secret = resultEntity.getSecret();

//构建下载map
final Map<String, String> maps = new HashMap<String, String>();
String accessToken = EMChatManager.getInstance().getAccessToken();
maps.put("Authorization", "Bearer " + accessToken);
if (!TextUtils.isEmpty(secret)) {
maps.put("share-secret", secret);
}
maps.put("Accept", "application/octet-stream");


if (remoteFilePath.contains("/"))
localFilePath = PathUtil.getInstance().getVoicePath()
.getAbsolutePath()
+ "/"
+ remoteFilePath.substring(remoteFilePath
.lastIndexOf("/") + 1);
else
localFilePath = PathUtil.getInstance().getVoicePath()
.getAbsolutePath()
+ "/" + remoteFilePath;
if ((new File(localFilePath).exists())) {
//已经下载,直接播放
playVoice(localFilePath,holder.iv,resultEntity);
return;
}

new Thread(new Runnable() {
@Override
public void run() {
httpFileMgr.downloadFile(remoteFilePath, localFilePath,
EMChatConfig.getInstance().APPKEY, maps, new CloudOperationCallback() {
@Override
public void onSuccess(String s) {
//下载成功,播放
playVoice(localFilePath,holder.iv,resultEntity);

}

@Override
public void onError(String s) {

}

@Override
public void onProgress(int i) {

}
});
}
}).start();

}
});

            

  
            

0 0
原创粉丝点击