發(fā)送 語音問題
RN 環(huán)信 官方已經(jīng)不再維護 目前的 代碼 集成 只能實現(xiàn)文字和圖片
使用的是webIm SDK的方式 完成集成
點擊語音的時候 我下載 到本地文件夾? 然后使用?
react native sound? 播放這個文件?
發(fā)現(xiàn) 播放失敗? ,沒有報錯 播放失敗消息, 只走了 react native sound 的 play 方法
然后我 懷疑是 因為路徑的錯誤 ,所以 我找了 一個網(wǎng)絡(luò)測試的 音頻 url https://cimili-cdn-audio-of-word.cimili.com/uploads/audio/mp3/us/abandon.mp3
我使用 這個 URL 可以實現(xiàn)在線 播放?
下載到與環(huán)信語音文件下載的同一個文件夾后 也能播放 排除了 路徑問題?
然后 我測試 是不是 環(huán)信的下載語音文件損壞,我直接 把 APP上下載的
這個文件拿到 電腦端 用電腦自帶的瀏覽器 播放 也是可以播放
所以 我覺得 這個文件 也沒事什么問題,但是 在手機卻是 播放不了
使用react native sound? / react native video? 這兩個播放器都 不能播放
這是 環(huán)信客服 的回復(fù) 他用的是 電腦 上瀏覽器 webim 處理的消息
對我來說沒什么幫助
? 我使用 IJKplayer 也不能 完成 播放
//發(fā)送語音消息
sendVoiceMessage(Voice) {
console.log('========1=====1====1====1====1=====1====1',Voice)
let VoicePath = Voice.path;
let duration = Voice.duration;
let voiceName = null;
if (!Utils.isEmpty(VoicePath)) {
voiceName = VoicePath.substring(VoicePath.lastIndexOf('/')+ 1,VoicePath.length);
}
let voiceType = voiceName && voiceName.split('.').pop();
if (Utils.isEmpty(VoicePath)) {
console.log('語音文件損壞')
}
let id = WebIM.conn.getUniqueId();// 生成本地消息id
? ? let msg = new WebIM.message('audio',id);// 創(chuàng)建音頻消息
? ? console.log('========2=====2====2====2====2=====2====2=',Voice);
if (this.chatType == 'groupchat') {
let to = this.sendTo;
msg.set({
apiUrl: WebIM.config.apiURL,
ext: {
filelength: duration,
filename: voiceName,
filetype: voiceType,
},
file: {
data: {
uri: VoicePath,type: 'application/octet-stream',name: voiceName
? ? ? ? ? ? ? ? }
},
to,
roomType: false,
// chatType: 'chatRoom',
? ? ? ? ? ? onFileUploadError: function (error) {
console.log('語音消息上傳失敗: ' + JSON.stringify(error))
},
onFileUploadComplete: function (data) {
console.log('消息上傳成功',data)
},
success: function (id) {
console.log('消息發(fā)送成功')
}
});
msg.setGroup('groupchat');
WebIM.conn.send(msg.body);
this.concatMessage({
'conversationId': this.chatContactId,
'id': id,
'from': this.username,
'to': this.sendTo,
'time': TimeUtil.currentTime(),
'url': VoicePath,
'length':duration,
'msgType': 'Voice',
'type':'groupchat',
'titleName' : this.titleName,
'isOutgoing' : true,
'userNick':this.state.userInfo.nikeName,
})
解決 辦法? 不能按照 環(huán)信 web文檔 中的方法? 發(fā)送? RN手機 端 的 語音消息?
因為? 找RN中 沒有 upLoad? 文件方法??
所以? 應(yīng)該吧? 語音文件 通過? ?file: {
data: {
uri: VoicePath,type: 'application/octet-stream',name: voiceName
? ? ? ? ? ? ? ? }
},
這個 方法 吧 文件 發(fā)送過去?
發(fā)送 視頻 同樣 遇到問題? 我用同樣 的方法 發(fā)送卻不能成功 不知道 是 什么原因? 在我使用消息類型選擇 video 的是時候? 是不能 通過 file? 的方法? 發(fā)送??
隨后 我占用了一個消息類型 為file? 的 然后我 通過這個file發(fā)送過去 但是 這樣 不能發(fā)送 縮略圖? 只能接收端 收到 視頻之后 下載 下來? 然后徐展示 縮略圖
略微 描述 這個問題解決 過程