微信小程序_文档_08_组件_媒体组件_地图_画布_开放能力

本文详细介绍了微信小程序中的媒体组件,包括audio、image、video、camera、live-player、live-pusher、map、canvas以及open-data和web-view的使用方法、属性和API。同时,提到了相关组件的注意事项,如层级控制和动画无效问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >





audio

注意:1.6.0 版本开始,该组件不再维护。建议使用能力更强的 wx.createInnerAudioContext 接口

音频。

属性名 类型 默认值 说明
id String   audio 组件的唯一标识符
src String   要播放音频的资源地址
loop Boolean false 是否循环播放
controls Boolean false 是否显示默认控件
poster String   默认控件上的音频封面的图片资源地址,如果 controls 属性值为 false 则设置 poster 无效
name String 未知音频 默认控件上的音频名字,如果 controls 属性值为 false 则设置 name 无效
author String 未知作者 默认控件上的作者名字,如果 controls 属性值为 false 则设置 author 无效
binderror EventHandle   当发生错误时触发 error 事件,detail = {errMsg: MediaError.code}
bindplay EventHandle   当开始/继续播放时触发play事件
bindpause EventHandle   当暂停播放时触发 pause 事件
bindtimeupdate EventHandle   当播放进度改变时触发 timeupdate 事件,detail = {currentTime, duration}
bindended EventHandle   当播放到末尾时触发 ended 事件

MediaError.code

返回错误码 描述
1 获取资源被用户禁止
2 网络错误
3 解码错误
4 不合适资源

示例代码:

在开发者工具中预览效果

<!-- audio.wxml -->
<audio poster="{
    
    {poster}}" name="{
    
    {name}}" author="{
    
    {author}}" src="{
    
    {src}}" id="myAudio" controls loop></audio>

<button type="primary" bindtap="audioPlay">播放</button>
<button type="primary" bindtap="audioPause">暂停</button>
<button type="primary" bindtap="audio14">设置当前播放时间为14秒</button>
<button type="primary" bindtap="audioStart">回到开头</button>
// audio.js
Page({
  onReady: function (e) {
    // 使用 wx.createAudioContext 获取 audio 上下文 context
    this.audioCtx = wx.createAudioContext('myAudio')
  },
  data: {
    poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
    name: '此时此刻',
    author: '许巍',
    src: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',
  },
  audioPlay: function () {
    this.audioCtx.play()
  },
  audioPause: function () {
    this.audioCtx.pause()
  },
  audio14: function () {
    this.audioCtx.seek(14)
  },
  audioStart: function () {
    this.audioCtx.seek(0)
  }
})

audio

相关api:wx.createAudioContext




image

图片。

属性名 类型 默认值 说明 最低版本
src String   图片资源地址  
mode String 'scaleToFill' 图片裁剪、缩放的模式  
lazy-load Boolean false 图片懒加载。只针对page与scroll-view下的image有效 1.5.0
binderror HandleEvent   当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'}  
bindload HandleEvent   当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:'图片高度px', width:'图片宽度px'}

注:image组件默认宽度300px、高度225px

mode 有效值:

mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。

模式 说明
缩放 scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
缩放 aspectFit 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
缩放 aspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
缩放 widthFix 宽度不变,高度自动变化,保持原图宽高比不变
裁剪 top 不缩放图片,只显示图片的顶部区域
裁剪 bottom 不缩放图片,只显示图片的底部区域
裁剪 center 不缩放图片,只显示图片的中间区域
裁剪 left 不缩放图片,只显示图片的左边区域
裁剪 right 不缩放图片,只显示图片的右边区域
裁剪 top left 不缩放图片,只显示图片的左上边区域
裁剪 top right 不缩放图片,只显示图片的右上边区域
裁剪 bottom left 不缩放图片,只显示图片的左下边区域
裁剪 bottom right 不缩放图片,只显示图片的右下边区域

示例:

在开发者工具中预览效果

<view class="page">
  <view class="page__hd">
    <text class="page__title">image</text>
    <text class="page__desc">图片</text>
  </view>
  <view class="page__bd">
    <view class="section section_gap" wx:for="{
    
    {array}}" wx:for-item="item">
      <view class="section__title">{
  
  {item.text}}</view>
      <view class="section__ctn">
        <image style="width: 200px; height: 200px; background-color: #eeeeee;" mode="{
    
    {item.mode}}" src="{
    
    {src}}"></image>
      </view>
    </view>
  </view>
</view>
Page({
  data: {
    array: [{
      mode: 'scaleToFill',
      text: 'scaleToFill:不保持纵横比缩放图片,使图片完全适应'
    }, { 
      mode: 'aspectFit',
      text: 'aspectFit:保持纵横比缩放图片,使图片的长边能完全显示出来'
    }, { 
      mode: 'aspectFill',
      text: 'aspectFill:保持纵横比缩放图片,只保证图片的短边能完全显示出来'
    }, { 
      mode: 'top',
      text: 'top:不缩放图片,只显示图片的顶部区域' 
    }, {      
      mode: 'bottom',
      text: 'bottom:不缩放图片,只显示图片的底部区域'
    }, { 
      mode: 'center',
      text: 'center:不缩放图片,只显示图片的中间区域'
    }, { 
      mode: 'left',
      text: 'left:不缩放图片,只显示图片的左边区域'
    }, { 
      mode: 'right',
      text: 'right:不缩放图片,只显示图片的右边边区域'
    }, { 
      mode: 'top left',
      text: 'top left:不缩放图片,只显示图片的左上边区域' 
    }, { 
      mode: 'top right',
      text: 'top right:不缩放图片,只显示图片的右上边区域'
    }, { 
      mode: 'bottom left',
      text: 'bottom left:不缩放图片,只显示图片的左下边区域'
    }, { 
      mode: 'bottom right',
      text: 'bottom right:不缩放图片,只显示图片的右下边区域'
    }],
    src: '../../resources/cat.jpg'
  },
  imageError: function(e) {
    console.log('image3发生error事件,携带值为', e.detail.errMsg)
  }
})
原图

image

scaleToFill

不保持纵横比缩放图片,使图片完全适应

image

aspectFit

保持纵横比缩放图片,使图片的长边能完全显示出来

image

aspectFill

保持纵横比缩放图片,只保证图片的短边能完全显示出来

image

top

不缩放图片,只显示图片的顶部区域

image

bottom

不缩放图片,只显示图片的底部区域

image

center

不缩放图片,只显示图片的中间区域

image

left

不缩放图片,只显示图片的左边区域

image

right

不缩放图片,只显示图片的右边边区域

image

top left

不缩放图片,只显示图片的左上边区域

image

top right

不缩放图片,只显示图片的右上边区域

image

bottom left

不缩放图片,只显示图片的左下边区域

image

bottom right

不缩放图片,只显示图片的右下边区域

image





video

视频。

属性名 类型 默认值 说明 最低版本
src String   要播放视频的资源地址  
initial-time Number   指定视频初始播放位置 1.6.0
duration Number   指定视频时长 1.1.0
controls Boolean true 是否显示默认播放控件(播放/暂停按钮、播放进度、时间)  
danmu-list Object Array   弹幕列表  
danmu-btn Boolean false 是否显示弹幕按钮,只在初始化时有效,不能动态变更  
enable-danmu Boolean false 是否展示弹幕,只在初始化时有效,不能动态变更  
autoplay Boolean false 是否自动播放  
loop Boolean false 是否循环播放 1.4.0
muted Boolean false 是否静音播放 1.4.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值