Skip to content

視頻

saveVideoToPhotosAlbum

TIP

該API使用方法為: wx.saveVideoToPhotosAlbum(Object object)

  • 功能說明: 保存視頻系統相册。 支持mp4視頻格式。

  • 參數及說明: Object object

    内容類型預設值必填說明
    filePathstring-視頻文件路徑,可以是暫存文件路徑也可以是永久文件路徑
    successFunction-接口調用成功的回呼函數
    failFunction-接口調用失敗的回呼函數
    completeFunction-接口調用結束的回呼函數(無論成功與否都執行)
  • 示例代碼:

js
wx.saveVideoToPhotosAlbum({
  filePath: 'wxfile://xxx',
  success(res) {
    console.log(res.errMsg)
  },
})

createVideoContext

TIP

該API使用方法為: VideoContext wx.createVideoContext(string id, Object this)

  • 功能說明: 創建video上下文 VideoContext 對象
  • 參數及說明:
    • string id: <video>組件的id。
    • 在自定義組件下,當前組件實例的this,以操作組件內 <video> 組件。
  • 返回值: VideoContext

chooseVideo

TIP

該API使用方法為: wx.chooseVideo(Object object)

  • 功能說明: 拍攝視頻或從手機相册中選視頻。

  • 參數及說明: Object object

    内容類型預設值必填說明
    sourceTypeArray.<string>['album', 'camera']視頻選擇來源
    compressedbooleantrue是否壓縮所選擇的視頻文件
    maxDurationnumber60拍攝視頻,最長拍攝時間,單位:秒
    camerastring'back'默認拉起的是前置或者後置監視器,部分Android手機下由於系統ROM不支持無法生效
    successFunction-接口調用成功的回呼函數
    failFunction-接口調用失敗的回呼函數
    completeFunction-接口調用結束的回呼函數(無論成功與否都執行)
  • object.sourceType的合法值

    說明
    album從相册選擇視頻
    camera使用相機拍攝視頻
  • object.camera的合法值

    說明
    back默認拉起後置監視器
    front默認拉起前置監視器
  • object.success回呼函數參數: Object res。

    内容類型說明
    tempFilePathstring選定視頻的暫存文件路徑
    durationnumber選定視頻的時間長度
    sizenumber選定視頻的數據量大小,單位B
    heightnumber返回選定視頻的高度
    widthnumber返回選定視頻的寬度
  • 示例代碼:

js
wx.chooseVideo({
  sourceType: ['album', 'camera'],
  maxDuration: 60,
  camera: 'back',
  success(res) {
    console.log(res.tempFilePath)
  },
})

compressVideo

TIP

該API使用方法為: wx.compressVideo(Object object)

  • 功能說明: 壓縮視頻接口,開發者可指定壓縮質量quality進行壓縮,當需要更精細的控制時,可指定bitrate、 fps、 和resolution,當quality傳入時,這三個參數將被忽略。

  • 參數及說明: Object object

    内容類型必填說明
    srcstring視頻文件路徑,可以是暫存文件路徑也可以是永久文件路徑
    qualitystring壓縮質量,合法值為:
    low:低
    medium:中
    high:高
    bitratenumber碼率,單位kbps
    fpsnumber幀率
    resolutionnumber相對於原視頻的分辯率比例,取值範圍(0,1]
    successFunction接口調用成功的回呼函數
    failFunction接口調用失敗的回呼函數
    completeFunction接口調用結束的回呼函數(無論成功與否都執行)
  • object.success回呼函數參數: Object res。

    内容類型說明
    tempFilePathstring壓縮後的暫存文件地址
    sizenumber壓縮後的大小,單位kB

chooseMedia

TIP

該API使用方法為: wx.chooseMedia(Object object)

  • 功能說明: 拍攝或從手機相册中選擇圖片或視頻。

  • 參數及說明: Object object

    内容類型預設值必填說明
    countnumber15最多可以選擇的文件個數,最多可支持15個文件
    mediaTypeArray.<string>['image','video']文件類型,合法值為:
    image:只能拍攝圖片或從相册選擇圖片
    video:只能拍攝或從相册選擇視頻
    sourceTypeArray.<string>['album', 'camera']圖片和視頻選擇的來源,合法值為:
    album:從相册選擇
    camera:使用相機拍攝
    maxDurationnumber10拍攝視頻最長拍攝時間,單位秒。 時間範圍為3s至60s之間。 不限制相册。
    sizeTypeArray.<string>['original', 'compressed']僅對mediaType為image時有效,是否壓縮所選文件
    camerastring'back'僅在sourceType為camera時生效,使用前置或後置監視器,合法值為:
    album:使用後置監視器
    camera:使用前置監視器
    successFunction-接口調用成功的回呼函數
    failFunction-接口調用失敗的回呼函數
    completeFunction-接口調用結束的回呼函數(無論成功與否都執行)
  • object.success回呼函數參數: Object res。

    内容類型說明
    tempFilesArray.<Object>本地暫存文件清單
    typestring文件類型,有效值有image、 video

    tempFiles結構内容

    結構内容類型說明
    tempFilePathstring本地暫存文件路徑(本地目錄)
    sizenumber本地暫存文件大小,單位B
    durationnumber視頻的時間長度
    heightnumber視頻的高度
    widthnumber視頻的寬度
    thumbTempFilePathstring視頻縮略圖暫存文件路徑
    fileTypestring文件類型,合法值有:
    image:圖片
    video:視頻
  • 示例代碼:

js
wx.chooseMedia({
  count: 9,
  mediaType: ['image','video'],
  sourceType: ['album', 'camera'],
  maxDuration: 30,
  camera: 'back',
  success(res) {
    console.log(res.tempFiles.tempFilePath)
    console.log(res.tempFiles.size)
  }
})

VideoContext

  • 功能說明: VideoContext實例,可通過 wx.createVideoContext 獲取,videoContext通過id跟一個<video>組件綁定,操作對應的 <video> 組件。

  • 示例代碼:

    對應的WXML文件

js
<view class="section tc">
  <video
    id="myVideo"
    src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400"
    enable-danmu
    danmu-btn
    controls
  ></video>
  <view class="btn-area">
    <input bindblur="bindInputBlur" />
    <button bindtap="bindSendDanmu">Dispatch the barrage</button>
  </view>
</view>
對應的js文件:
js
function getRandomColor() {
  const rgb = []
  for (let i = 0; i < 3; ++i) {
    let color = Math.floor(Math.random() * 256).toString(16)
    color = color.length == 1 ? '0' + color : color
    rgb.push(color)
  }
  return '#' + rgb.join('')
}

Page({
  onReady(res) {
    this.videoContext = wx.createVideoContext('myVideo')
  },
  inputValue: '',
  bindInputBlur(e) {
    this.inputValue = e.detail.value
  },
  bindSendDanmu() {
    this.videoContext.sendDanmu({
      text: this.inputValue,
      color: getRandomColor(),
    })
  },
})

方法集

exitFullScreen

TIP

該API使用方法為: VideoContext.exitFullScreen()

  • 功能說明: 退出全屏
exitBackgroundPlayback

TIP

該API使用方法為: VideoContext.exitBackgroundPlayback()

  • 功能說明: 退出後臺音訊播放模式。
hideStatusBar

TIP

該API使用方法為: VideoContext.hideStatusBar()

  • 功能說明: 隱藏狀態列,僅在iOS全屏下有效。
pause

TIP

該API使用方法為: VideoContext.pause()

  • 功能說明: 暫停視頻
play

TIP

該API使用方法為: VideoContext.play()

  • 功能說明: 播放視頻
requestFullScreen

TIP

該API使用方法為: VideoContext.requestFullScreen(Object object)

  • 功能說明: 進入全屏。 若有自定義內容需在全屏時展示,需將內容節點放置到video節點內。
  • 參數及說明: Object object
    内容類型預設值必填說明
    directionnumber-設定全屏時視頻的方向,不指定則根據寬高比自動判斷
  • object.direction的合法值
    說明
    0正常豎向
    90荧幕逆時針90度
    -90荧幕順時針90度
requestBackgroundPlayback

TIP

該API使用方法為: VideoContext.requestBackgroundPlayback()

  • 功能說明: 進入後臺音訊播放模式。
seek

TIP

該API使用方法為: VideoContext.seek(number position)

  • 功能說明: 跳轉到指定位置
  • 參數及說明: number position, 跳轉到的位置,單位: s。
sendDanmu

TIP

該API使用方法為: VideoContext.sendDanmu(Object data)

  • 功能說明: 發送彈幕
  • 參數: Object data,彈幕內容
    内容類型預設值必填說明
    textstring-彈幕文字
    colorstring-彈幕顏色
showStatusBar

TIP

該API使用方法為: VideoContext.showStatusBar()

  • 功能說明: 顯示狀態列,僅在iOS全屏下有效。
stop

TIP

該API使用方法為: VideoContext.stop()

  • 功能說明: 停止視頻。