音訊
stopVoice
TIP
該API使用方法為: wx.stopVoice(Object object)
功能說明: 結束播放語音
參數及說明: Object object
内容 類型 預設值 必填 說明 success Function - 否 接口調用成功的回呼函數 fail Function - 否 接口調用失敗的回呼函數 complete Function - 否 接口調用結束的回呼函數(無論成功與否都執行) 示例代碼:
wx.startRecord({
success (res) {
const tempFilePath = res.tempFilePath
wx.playVoice({
filePath: tempFilePath,
})
setTimeout(() => { wx.stopVoice() }, 5000)
}
})playVoice
TIP
該API使用方法為: wx.playVoice(Object object)
該API小程序支持,小遊戲暫不支持
功能說明: 開始播放語音。 同時只允許一個語音文件正在播放,如果前一個語音文件還沒播放完,將中斷前一個語音播放。
參數及說明:
内容 類型 預設值 必填 說明 filePath string - 是 需要播放的語音文件的文件路徑(本地路徑) duration number 60 否 指定播放時長,到達指定的播放時長後會自動停止播放,單位:秒 success Function - 否 接口調用成功的回呼函數 fail Function - 否 接口調用失敗的回呼函數 complete Function - 否 接口調用結束的回呼函數(無論成功與否都執行) 示例代碼:
wx.startRecord({
success (res) {
const tempFilePath = res.tempFilePath
wx.playVoice({
filePath: tempFilePath,
complete () { }
})
}
})pauseVoice
TIP
該API使用方法為: wx.pauseVoice(Object object)
該API小程序支持,小遊戲暫不支持
功能說明: 暫停正在播放的語音。 再次調用 wx.playVoice 播放同一個文件時,會從暫停處開始播放。 如果想從頭開始播放,需要先調用 wx.stopVoice
參數及說明: Object object。
内容 類型 預設值 必填 說明 success Function - 否 接口調用成功的回呼函數 fail Function - 否 接口調用失敗的回呼函數 complete Function - 否 接口調用結束的回呼函數(無論成功與否都執行) 示例代碼:
wx.startRecord({
success (res) {
const tempFilePath = res.tempFilePath
wx.playVoice({
filePath: tempFilePath
})
setTimeout(() => { wx.pauseVoice() }, 5000)
}
})setInnerAudioOption
TIP
該API使用方法為: wx.setInnerAudioOption(Object object)
- 功能說明: 設定 InnerAudioContext 的播放選項。 設定之後對當前小程序全域生效。
- 參數及說明: Object object。
内容 類型 預設值 必填 說明 mixWithOther boolean true 否 是否與其他音訊混播,設定為true之後,不會終止其他應用的音樂 obeyMuteSwitch boolean true 否 (僅在iOS生效)是否遵循靜音開關,設定為false之後,即使是在靜音模式下,也能播放聲音 speakerOn boolean true 否 true代表用揚聲器播放,false代表聽筒播放,預設值為true success Function - 否 接口調用成功的回呼函數 fail Function - 否 接口調用失敗的回呼函數 complete Function - 否 接口調用結束的回呼函數(無論成功與否都執行)
getAvailableAudioSources
TIP
該API使用方法為: wx.getAvailableAudioSources(Object object)
該API小程序支持,小遊戲暫不支持
功能說明: 獲取當前支持的音訊輸入源
參數及說明: Object object。
内容 類型 預設值 必填 說明 success Function - 否 接口調用成功的回呼函數 fail Function - 否 接口調用失敗的回呼函數 complete Function - 否 接口調用結束的回呼函數(無論成功與否都執行) object.success回呼函數參數: Object res。
内容 類型 說明 audioSources Array.< string>支持的音訊輸入源清單。 返回值定義參攷 AudioSource - audioSources合法值
合法值 說明 auto 自動設定,默認使用手機麥克風,插上耳麥後自動切換使用耳機麥克風,所有平臺適用 buildInMic 手機麥克風,僅限iOS headsetMic 有線耳機麥克風,僅限iOS mic 麥克風(沒插耳麥時是手機麥克風,插耳麥時是耳機麥克風),僅限Android camcorder 同mic,適用於錄製音視頻內容,僅限Android voice_communication 同mic,適用於即時溝通,僅限Android voice_recognition 同mic,適用於語音辨識,僅限Android
createAudioContext
TIP
該API使用方法為: AudioContext wx.createAudioContext(string id, Object this)
該API小程序支持,小遊戲暫不支持
- 功能說明: 創建audio上下文 AudioContext 對象
- 參數及說明: string id, audio組件的id; Object this, 在自定義組件下,當前組件實例的this,以操作組件內audio組件。
- 返回值: AudioContext
AudioContext
TIP
該API小程序支持,小遊戲暫不支持
AudioContext實例,可通過 wx.createAudioContext 獲取,通過id跟一個audio組件綁定,操作對應的audio組件。
pause
TIP
該API使用方法為: AudioContext.pause()
- 功能說明: 暫停音訊
play
TIP
該API使用方法為: AudioContext.play()
- 功能說明: 播放音訊
seek
TIP
該API使用方法為: AudioContext.seek(number position)
- 功能說明: 跳轉到指定位置
- 參數及說明: number position, 跳轉位置,單位: s。
setSrc
TIP
該API使用方法為: AudioContext.setSrc(string src)
- 功能說明: 設定音訊地址
- 參數及說明: string src, 音訊地址。
createInnerAudioContext
TIP
該API使用方法為: InnerAudioContext wx.createInnerAudioContext(Object object)
功能說明: 創建內部audio上下文 InnerAudioContext 對象,使用方法為wx.createInnerAudioContext()。
返回值: InnerAudioContext
注意事項 InnerAudioContext音訊資源不會自動釋放,囙此如果不再需要使用音訊,請及時調用InnerAudioContext.destroy()釋放資源,避免記憶體洩漏。
示例代碼:
const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46'
innerAudioContext.play() // play
innerAudioContext.pause() // pause
innerAudioContext.stop() // stop
innerAudioContext.destroy() // destroyInnerAudioContext
内容
- string src:音訊資源的地址,用於直接播放。
- number startTime:開始播放的位置(單位: s), 默認為0。
- boolean autoplay:是否自動開始播放,默認為false。
- boolean loop:是否迴圈播放,默認為false。
- number volume:音量,範圍0-1。 默認為1。
- number duration:當前音訊的長度(單位: s)。 只有在當前有合法的src時返回(只讀)。
- number currentTime:當前音訊的播放位置(單位s)。 只有在當前有合法的src時返回,時間保留小數點後6比特(只讀)。
- boolean paused:當前是否是暫停或停止狀態(只讀)。
- number buffered:音訊緩衝的時間點,僅保證當前播放時間點到此時間點內容已緩衝(只讀)。
支持格式
| 支持格式 | iOS | Android |
|---|---|---|
| flac | x | √ |
| m4a | √ | √ |
| ogg | x | √ |
| ape | x | √ |
| amr | x | √ |
| wma | x | √ |
| wav | √ | √ |
| mp3 | √ | √ |
| mp4 | x | √ |
| aac | √ | √ |
| aiff | √ | x |
| caf | √ | x |
- 示例代碼:
const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'https://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46'
innerAudioContext.onPlay(() => {
console.log('start play')
})
innerAudioContext.onError((res) => {
console.log(res.errMsg)
console.log(res.errCode)
})方法集
play
TIP
該API使用方法為: InnerAudioContext.play()
- 功能說明: 開始播放
pause
TIP
該API使用方法為: InnerAudioContext.pause()
- 功能說明: 暫停,暫停後的音訊再播放會從暫停處開始播放。
stop
TIP
該API使用方法為: InnerAudioContext.stop()
- 功能說明: 停止,停止後的音訊再播放會從頭開始播放。
seek
TIP
該API使用方法為: InnerAudioContext.seek(number position)
- 功能說明: 跳轉到指定位置
destroy
TIP
該API使用方法為: InnerAudioContext.destroy()
- 功能說明: 銷毀當前實例。
onCanplay
TIP
該API使用方法為: InnerAudioContext.onCanplay(function listener)
- 功能說明: 監聽音訊進入可以播放狀態的事件。 但不保證後面可以流暢播放。
- 參數及說明: function listener, 音訊進入可以播放狀態的事件的監聽函數。
offCanplay
TIP
該API使用方法為: InnerAudioContext.offCanplay(function listener)
- 功能說明: 移除音訊進入可以播放狀態的事件的監聽函數
- 參數及說明: function listener, onCanplay傳入的監聽函數。 不傳此參數則移除所有監聽函數。
- 示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onCanplay(listener)
InnerAudioContext.offCanplay(listener) // Pass the same function object used for listening.onPlay
TIP
該API使用方法為: InnerAudioContext.onPlay(function listener)
- 功能說明: 監聽音訊播放事件
- 參數及說明: function listener, 音訊播放事件的監聽函數。
offPlay
TIP
該API使用方法為: InnerAudioContext.offPlay(function listener)
功能說明: 移除音訊播放事件的監聽函數
參數及說明: function listener, onPlay傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onPlay(listener)
InnerAudioContext.offPlay(listener) // Pass the same function object used for listening.onPause
TIP
該API使用方法為: InnerAudioContext.onPause(function listener)
- 功能說明: 監聽音訊暫停事件
- 參數及說明: function listener, 音訊暫停事件的監聽函數。
offPause
TIP
該API使用方法為: InnerAudioContext.offPause(function listener)
功能說明: 移除音訊暫停事件的監聽函數
參數及說明: function listener, onPause傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onPause(listener)
InnerAudioContext.offPause(listener) // Pass the same function object used for listening.onStop
TIP
該API使用方法為: InnerAudioContext.onStop(function listener)
- 功能說明: 監聽音訊停止事件
- 參數及說明: function listener, 音訊停止事件的監聽函數。
offStop
TIP
該API使用方法為: InnerAudioContext.offStop(function listener)
功能說明: 移除音訊停止事件的監聽函數
參數及說明: function listener, onStop傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onStop(listener)
InnerAudioContext.offStop(listener) // Pass the same function object used for listening.onEnded
TIP
該API使用方法為: InnerAudioContext.onEnded(function listener)
- 功能說明: 監聽音訊自然播放至結束的事件
- 參數及說明: function listener, 監聽音訊自然播放至結束的事件
offEnded
TIP
該API使用方法為: InnerAudioContext.offEnded(function listener)
功能說明: 移除音訊自然播放至結束的事件的監聽函數
參數及說明: function listener, onEnded傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onEnded(listener)
InnerAudioContext.offEnded(listener) // Pass the same function object used for listening.onTimeUpdate
TIP
該API使用方法為: InnerAudioContext.onTimeUpdate(function listener)
- 功能說明: 監聽音訊播放進度更新事件
- 參數及說明: function listener, 背景音频播放進度更新事件的監聽函數。
offTimeUpdate
TIP
該API使用方法為: InnerAudioContext.offTimeUpdate(function listener)
功能說明: 移除音訊播放進度更新事件的監聽函數
參數及說明: function listener, onTimeUpdate傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onTimeUpdate(listener)
InnerAudioContext.offTimeUpdate(listener) // Pass the same function object used for listening.onError
TIP
該API使用方法為: InnerAudioContext.onError(function listener)
- 功能說明: 監聽音訊播放錯誤事件
- 參數及說明: function listener, 音訊播放錯誤事件的監聽函數。
- Object res
内容 類型 說明 errMsg string - errCode number - - errCode的合法值
值 說明 10001 系統錯誤 10002 網絡錯誤 10003 文件錯誤,請檢查是否responseheader是否缺少Content-Length 10004 格式錯誤 -1 未知錯誤 - tips:
- errCode=100001時,如若errMsg中有INNERCODE -11828,請先檢查response header是否缺少Content-Length。
- errCode=100001時,如若errMsg中有systemErrCode:200333420,請檢查文件編碼格式和fileExtension是否一致。
offError
TIP
該API使用方法為: InnerAudioContext.offError(function listener)
功能說明: 移除音訊播放錯誤事件的監聽函數
參數及說明: function listener, onError傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onError(listener)
InnerAudioContext.offError(listener) // Pass the same function object used for listening.onWaiting
TIP
該API使用方法為: InnerAudioContext.onWaiting(function listener)
- 功能說明: 監聽音訊加載中事件。 當音訊因為數據不足,需要停下來加載時會觸發。
- 參數及說明: function listener, 音訊加載中事件的監聽函數。
offWaiting
TIP
該API使用方法為: InnerAudioContext.offWaiting(function listener)
功能說明: 移除音訊加載中事件的監聽函數
參數及說明: function listener, onWaiting傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onWaiting(listener)
InnerAudioContext.offWaiting(listener) // Pass the same function object used for listening.onSeeking
TIP
該API使用方法為: InnerAudioContext.onSeeking(function listener)
- 功能說明: 監聽音訊進行跳轉操作的事件
- 參數及說明: function listener, 音訊進行跳轉操作的事件的監聽函數。
offWaiting
TIP
該API使用方法為: InnerAudioContext.offSeeking(function listener)
功能說明: 移除音訊進行跳轉操作的事件的監聽函數
參數及說明: function listener, onSeeking傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onSeeking(listener)
InnerAudioContext.offSeeking(listener) // Pass the same function object used for listening.onSeeked
TIP
該API使用方法為: InnerAudioContext.onSeeked(function listener)
- 功能說明: 監聽音訊完成跳轉操作的事件
- 參數及說明: function listener, 音訊完成跳轉操作的事件的監聽函數。
offSeeked
TIP
該API使用方法為: InnerAudioContext.offSeeked(function listener)
功能說明: 移除音訊完成跳轉操作的事件的監聽函數
參數及說明: function listener, onSeeked傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
InnerAudioContext.onSeeked(listener)
InnerAudioContext.offSeeked(listener) // Pass the same function object used for listening.