成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

微信小程序音頻IOS無(wú)法播放問(wèn)題總結(jié)

Soarkey / 3288人閱讀

摘要:?jiǎn)栴}微信小程序,將文字轉(zhuǎn)換為語(yǔ)音后,使用音頻進(jìn)行播放。在安卓手機(jī)下可以正常播放,在下不行。需要對(duì)接口的文本字符串參數(shù)進(jìn)行編碼比如哈哈哈哈哈哈哈哈哈沒(méi)有做編碼,直接上文本的,也會(huì)出現(xiàn)安卓行不行的情況。

【問(wèn)題】

微信小程序,將文字轉(zhuǎn)換為語(yǔ)音后,使用音頻進(jìn)行播放。在安卓手機(jī)下可以正常播放,在IOS下不行。

【環(huán)境】

微信小程序庫(kù)版本2.3.0
百度語(yǔ)音合成服務(wù)

【解決方法】

正確代碼:

//創(chuàng)建一個(gè)音頻實(shí)例
const myaudio = wx.createInnerAudioContext();

//設(shè)置obeyMuteSwitch: false(不遵循系統(tǒng)靜音開(kāi)關(guān),即使用戶打開(kāi)了靜音開(kāi)關(guān),也能繼續(xù)發(fā)出聲音)
//設(shè)置autoplay: true(自動(dòng)開(kāi)始播放)
if (wx.setInnerAudioOption) {
  wx.setInnerAudioOption({
    obeyMuteSwitch: false,
    autoplay: true
  })
}else {
  myaudio.obeyMuteSwitch = false;
  myaudio.autoplay = true;
}

//監(jiān)聽(tīng)各個(gè)階段
myaudio.onCanplay(() => {
  console.log("可以播放");
});
myaudio.onPlay(() => {
  console.log("監(jiān)聽(tīng)到音頻開(kāi)始播放");
});
myaudio.onEnded(() => {
  console.log("音頻自然播放結(jié)束事件");
});
myaudio.onStop(() => {
  console.log("音頻停止事件");
});
myaudio.onError((res) => {
  console.log(res.errMsg);
  console.log(res.errCode);
});
myaudio.onWaiting((res) => {
  console.log("音頻加載中事件,當(dāng)音頻因?yàn)閿?shù)據(jù)不足,需要停下來(lái)加載時(shí)會(huì)觸發(fā)")
});


//設(shè)置播放鏈接
myaudio.src = "https://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=24.b63*************************************.1543030920.282335-11522973&tex=" + encodeURIComponent(encodeURIComponent("哈哈哈哈哈哈哈哈哈")) + "&vol=5&per=0&spd=5&pit=5&aue=324.b6306a3dff68e153a0d5656b3a78bd5e.2592000.1543030920.282335-11522973";

//播放
myaudio.play();

這樣,在安卓和IOS下都可以正常播放了。

【問(wèn)題總結(jié)】

為什么總是播放不了?注意下面兩點(diǎn):

1、這個(gè)播放鏈接返回的必須是格式正確的音頻文件

所以如果換一個(gè)鏈接就能播放了,那可能就說(shuō)明你原來(lái)的鏈接返回了錯(cuò)誤的音頻格式。

原本我的播放鏈接是:

myaudio.src = "https://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text=" + encodeURIComponent("哈哈哈哈哈哈哈哈哈");

這個(gè)tts.baidu.com和tsn.baidu.com長(zhǎng)得非常像,為什么一開(kāi)始用的不是tsn?是因?yàn)樵诰W(wǎng)上搜索到的好多案例都是用的tts,而且tsn需要token參數(shù),這個(gè)參數(shù)要么需要從百度AI開(kāi)放平臺(tái)手動(dòng)獲取,要么需要調(diào)用獲取token的接口,而這個(gè)接口又不支持瀏覽器跨域,因此需要從服務(wù)端獲取token或者每隔30天手動(dòng)輸入更新,我嫌麻煩,所以一開(kāi)始先用了tts。

tts在安卓下確實(shí)可以正常播放,可以看到Console中依次打印出了:

監(jiān)聽(tīng)到音頻開(kāi)始播放
音頻加載中事件,當(dāng)音頻因?yàn)閿?shù)據(jù)不足,需要停下來(lái)加載時(shí)會(huì)觸發(fā)
可以播放
音頻自然播放結(jié)束事件

但是在IOS下就無(wú)法播放了,Console中依次打印出了:

音頻加載中事件,當(dāng)音頻因?yàn)閿?shù)據(jù)不足,需要停下來(lái)加載時(shí)會(huì)觸發(fā)
INNERERRCODE:-11850, ERRMSG:操作停止
10002

根據(jù)官方的說(shuō)法,應(yīng)該是因?yàn)榉祷氐囊纛l格式IOS不支持。(https://developers.weixin.qq....)如果返回的音頻格式正確,是可以正常播放的。

ps:后來(lái)查了一下發(fā)現(xiàn)tts這個(gè)接口應(yīng)該只是他們內(nèi)部demo地址,所以還是使用正式的tsn吧。

2、需要對(duì)tsn接口的文本字符串參數(shù)進(jìn)行編碼
比如: encodeURIComponent(encodeURIComponent("哈哈哈哈哈哈哈哈哈"));

沒(méi)有做編碼,直接上文本的,也會(huì)出現(xiàn)安卓行IOS不行的情況。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/98904.html

相關(guān)文章

  • ios微信下vue項(xiàng)目組件切換并自動(dòng)播放音頻的解決方案

    摘要:最近在做一個(gè)英語(yǔ)答題項(xiàng)目項(xiàng)目需求是通過(guò)答題取的成績(jī)答題的題型是分為聽(tīng)音選圖看圖選詞和填空題項(xiàng)目總共分為了個(gè)頁(yè)面開(kāi)始頁(yè)答題頁(yè)和結(jié)束頁(yè)面答題頁(yè)關(guān)于每種題型我做了相應(yīng)的組件每次切換題目的時(shí)候顯示對(duì)應(yīng)的的組件要求聽(tīng)音選圖的時(shí)候會(huì)自動(dòng)播放音頻慣例下的 最近在做一個(gè)英語(yǔ)答題項(xiàng)目 , 項(xiàng)目需求是通過(guò)答題取的成績(jī) , 答題的題型是分為 , 聽(tīng)音選圖 , 看圖選詞 , 和填空題 . 項(xiàng)目總共分為了3個(gè)頁(yè)...

    LinkedME2016 評(píng)論0 收藏0
  • 開(kāi)發(fā) | 信小程序audio音頻播放組件+api_wx.createAudioContext

    摘要:引言是微信小程序中的音頻組件,可以輕松實(shí)現(xiàn)小程序中播放停止音頻等自定義動(dòng)作。 引言: audio是微信小程序中的音頻組件,可以輕松實(shí)現(xiàn)小程序中播放/停止音頻等自定義動(dòng)作。 附上微信小程序audio組件的相關(guān)屬性說(shuō)明:https://mp.weixin.qq.com/debu... 本次將通過(guò)小程序audio的 poster、name、author、src、id、controls 屬性,...

    gekylin 評(píng)論0 收藏0
  • 信小程序調(diào)研文檔

    摘要:關(guān)于微信小程序之前只是聽(tīng)說(shuō),并沒(méi)有引起我太大的興趣。剛好團(tuán)隊(duì)內(nèi)部有個(gè)需求需要微信小程序。暫時(shí)沒(méi)有上線經(jīng)歷,沒(méi)辦法給出這個(gè)時(shí)間微信小程序的代碼包大小當(dāng)前限制是。 關(guān)于微信小程序之前只是聽(tīng)說(shuō),并沒(méi)有引起我太大的興趣。周一被小程序刷屏,然后就順手搜索了解了一下。發(fā)現(xiàn)小程序已經(jīng)火遍了整個(gè)程序員圈子。剛好團(tuán)隊(duì)內(nèi)部有個(gè)需求需要微信小程序。就緊急對(duì)微信小程序進(jìn)行了調(diào)研,閱讀過(guò)開(kāi)發(fā)者文檔后總結(jié)了以下的...

    kidsamong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<