小程序ios音頻播放沒聲音問題的解決
小程序提供了錄音和播放音頻的能力,從基礎庫 1.6.0 開始支持了wx.getRecorderManager(),錄音都采用wx.getRecorderManager()提供的api,播放音頻文件采用wx.createInnerAudioContext()提供的api
導入錄音和播放音頻功能
const recorderManager = wx.getRecorderManager(); // 錄音功能 const innerAudioContext = wx.createInnerAudioContext(); // 播放音頻
注冊錄音結束事件
// 錄音結束
recorderManager.onStop((res) => {
console.log('recorder stop');
const { tempFilePath } = res; // 錄音的本地臨時文件
// ... 播放音頻
innerAudioContext.src = tempFilePath ;
innerAudioContext.play();
});
開始錄音
const options = {
duration: 10000,
sampleRate: 44100,
numberOfChannels: 1,
encodeBitRate: 192000,
format: 'aac',
frameSize: 50
}
recorderManager.start(options);
options是一些音頻的配置,具體的配置可以查看 官方文檔
這樣就創(chuàng)建了一個簡單的音頻錄音和播放功能
ios播放音頻文件沒有聲音
在開發(fā)過程中發(fā)現(xiàn)在開發(fā)者工具和安卓測試機上都能正常錄音和播放錄音文件,但是在ios手機上發(fā)現(xiàn)音頻文件播放沒有聲音,百度查看沒有發(fā)現(xiàn)有遇到類似的問題,只能自己各種測試,最后發(fā)現(xiàn)ios手機是靜音模式?。?!果然取消靜音模式就能夠正常播放了。
其實仔細查看api文檔, innerAudioContext 對象的屬性列表中發(fā)現(xiàn)一個屬性 obeyMuteSwitch ,這個屬性可以在靜音模式下播放音頻文件,并且有聲音?。?!
是否遵循系統(tǒng)靜音開關,當此參數(shù)為 false 時,即使用戶打開了靜音開關,也能繼續(xù)發(fā)出聲音,默認值 true

可以通過設置obeyMuteSwitch為false開啟在靜音模式下播放音頻!解決了ios靜音模式下播放音頻文件沒有聲音的問題!
innerAudioContext.obeyMuteSwitch = false;
在開發(fā)小程序的過程中遇到問題還是應該多查看api文檔,才能更加快速的解決遇到的bug!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
js如何調用qq互聯(lián)api實現(xiàn)第三方登錄
這篇文章主要介紹了js如何調用qq互聯(lián)api實現(xiàn)第三方登錄,需要的朋友可以參考下2014-03-03
JavaScript-RegExp對象只能使用一次問題解決方法
RegExp對象執(zhí)行了一次后就廢掉了,所以每次用RegExp都需要重新new一個,下面有個示例,需要的朋友可以參考下2014-06-06
JavaScript實現(xiàn)重力下落與彈性效果的方法分析
這篇文章主要介紹了JavaScript實現(xiàn)重力下落與彈性效果的方法,結合實例形式分析了javascript重力下落及彈性效果的原理與具體實現(xiàn)技巧,需要的朋友可以參考下2017-12-12

