微信小程序实现录制、试听、上传音频(带波形图)

本文介绍了一种使用getBackgroundAudioManager实现音频录制、播放和上传的功能,并通过CSS实现声音波形图的展示,详细展示了XML布局和JS逻辑代码。

最近接到这样一个需求,要求实现录制、试听、上传音频功能,选择的是getBackgroundAudioManager,声音录制和播放波形图是用css实现的,效果图及详细设计代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • xml文件

    <view class="servicePage">
      <view style="width:100%;height:320rpx;position:absolute;z-index:-1;">
        <image style="width:100%" src="../../img/bg.png" mode='widthFix'></image>
      </view>
      <view class="content" style="height:{
            
            {
            
            contentHeight}}">
        <view class="allService">
          <view class="title">
            录制提示
          </view>
        </view>
        <view class="voiceView">
          <view class="voiceTime" style="text-align: center;">00:00:<span>{
        
        {currentTime}}</span></view>
          <view class="voiceLine">
            <view class="voiceBox" wx:if="{
          
          {!showWaveView}}">
                  <view class="Wave1">
                    <view class="voiceWave">
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                    </view>
                    <view class="voiceWave1">
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                    </view>
                  </view>
                  <view class="Wave1">
                      <view class="voiceWave">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                      <view class="voiceWave1">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                  </view>
                  <view class="Wave2">
                    <view class="voiceWave">
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                    </view>
                    <view class="voiceWave1">
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                      <view class="auItem"></view>
                    </view>
                  </view>
                  <view class="Wave1">
                      <view class="voiceWave">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                      <view class="voiceWave1">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                  </view>
                  <view class="Wave1">
                        <view class="voiceWave">
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                        </view>
                        <view class="voiceWave1">
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                          <view class="auItem"></view>
                        </view>
                  </view>
                  <view class="Wave1">
                      <view class="voiceWave">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                      <view class="voiceWave1">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                  </view>
                  <view class="Wave3">
                      <view class="voiceWave">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                      <view class="voiceWave1">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                  </view>
                  <view class="Wave1">
                      <view class="voiceWave">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                      <view class="voiceWave1">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                  </view>
                  <view class="Wave1">
                      <view class="voiceWave">
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                        <view class="auItem"></view>
                      </view>
                      <view class="voiceWave1">
                        <view class="auItem">
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值