摘要:目前公司的項(xiàng)目是基于,領(lǐng)導(dǎo)要加類(lèi)似微信的語(yǔ)音聊天功能,看了看七牛的文檔跟源碼,功能有太多我用不上的。先前上傳圖片用的是七牛提供的上傳方法,那如果把錄音轉(zhuǎn)成,也就可以上傳到七牛了。錄音的組件我最終用的,錄音出來(lái)的格式是,跟都支持播放。
目前公司的webapp項(xiàng)目是基于meteor+react+cordova,領(lǐng)導(dǎo)要加類(lèi)似微信的語(yǔ)音聊天功能,看了看七牛的文檔跟源碼,功能有太多我用不上的。先前上傳圖片用的是七牛提供的base64上傳方法,那如果把錄音轉(zhuǎn)成base64,也就可以上傳到七牛了。
錄音的組件我最終用的cordova-plugin-media-with-compression,錄音出來(lái)的格式是.m4a,iOS跟Android都支持播放。
cordova-plugin-media-with-compression與cordova-plugin-media在Android端有區(qū)別。var filename = "xxxx.m4a"; mediaRec = new Media(filename);前者錄完音是在原音頻基礎(chǔ)上增量錄,而后者則Android跟iOS一樣都是每次重新錄音,這里我采用了每次錄音var filename = Date.now() + ".m4a"的方法解決這個(gè)問(wèn)題
//轉(zhuǎn)base64的代碼 getFileContentAsBase64(path,callback){ window.resolveLocalFileSystemURL(path, gotFile, fail); function fail(e) { alert("Cannot found requested file"); } function gotFile(fileEntry) { fileEntry.file((file) => { var reader = new FileReader(); reader.onloadend = function(e) { var content = this.result; callback(content); }; // The most important point, use the readAsDatURL Method from the file plugin reader.readAsDataURL(file); }); } }
其中path參數(shù)需要做下判斷,iOS與Android的路徑不同,這里我使用了cordova-plugin-file插件,代碼如下:
var path; var filename = Date.now() + ".m4a"; if(device.platform == "iOS") { path = cordova.file.tempDirectory + filename; } else if(device.platform == "Android") { path = cordova.file.externalRootDirectory + filename; }
然后錄音成功后調(diào)用getFileContentAsBase64即可
var mediaRec = new Media(filename, function() { getFileContentAsBase64(path, function(base64) { var audio = base64.split(",")[1]; //七牛要求填寫(xiě)base64后的字符串 var key = "上傳到七牛的名字"; var url = `http://up-z1.qiniu.com/putb64/-1/key/${btoa(key)}`; //華北是up-z1,華南可能是up或upload,我忘記了 //剩下的就參考文章開(kāi)頭給的七牛base64上傳方法鏈接 } })
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/80942.html
摘要:如果你有疑問(wèn),或許可以參考創(chuàng)建密鑰使用谷歌將語(yǔ)音轉(zhuǎn)換為文字。將其取出,得到字典。 在之前發(fā)布的使用谷歌Cloud Speech API將語(yǔ)音轉(zhuǎn)換為文字一文中,我們實(shí)現(xiàn)了在控制臺(tái)使用curl發(fā)送post請(qǐng)求,得到語(yǔ)音轉(zhuǎn)文字的結(jié)果;而在Python中使用谷歌Cloud Speech API將語(yǔ)音轉(zhuǎn)換為文字一文中,我們實(shí)現(xiàn)了安裝Cloud Speech API客戶(hù)端庫(kù),通過(guò)調(diào)用庫(kù)函數(shù)得到語(yǔ)音...
摘要:我們的功能需要用到的接口事件讀取完成,無(wú)論成功與否,還有方法將文件讀取為。檢測(cè)是否為圖片類(lèi)型圖片的編碼這里設(shè)置獲取的數(shù)據(jù)獲取后臺(tái)的給的將文件讀取為上傳事件當(dāng)?shù)臅r(shí)候說(shuō)明我們成功的把圖片傳上七牛了,并且七牛給我們返回了一個(gè)字符串。 最近在做的一個(gè)聊天消息的功能。有個(gè)圖片上傳的功能,可以通過(guò)按鈕上傳也可以通過(guò)Ctrl+V上傳。按鈕上傳的我們可以通過(guò)七牛的API就可以做了,我們現(xiàn)在來(lái)說(shuō)說(shuō)Ctr...
摘要:,具體實(shí)現(xiàn)源碼上傳圖片獲取地址獲取創(chuàng)建對(duì)象,用于和服務(wù)器交換數(shù)據(jù)存儲(chǔ)函數(shù),每當(dāng)改變,便會(huì)調(diào)用該函數(shù)上傳成功最終終于實(shí)現(xiàn)了七牛云上傳的問(wèn)題,如果還有問(wèn)題的可以下方留言 最近公司內(nèi)部項(xiàng)目遇到上傳base64位圖片到七牛云,并且自定義key存儲(chǔ),在解決過(guò)程遇到很多問(wèn)題,但是最終經(jīng)過(guò)請(qǐng)教,都得到結(jié)果,故在這里總結(jié)一下... 官方文檔 1,布局代碼如下: ...
閱讀 2067·2021-11-24 10:45
閱讀 1917·2021-10-09 09:43
閱讀 1361·2021-09-22 15:38
閱讀 1310·2021-08-18 10:19
閱讀 2887·2019-08-30 15:55
閱讀 3115·2019-08-30 12:45
閱讀 3044·2019-08-30 11:25
閱讀 429·2019-08-29 11:30