微信小程序音频播放

小程序音频播放;不废话直接上代码:

index.wxml

<!--index.wxml-->
<view class="mycontent">
  <view class="swiper-tab">
  <view class="swiper-tab-list {{currentTab==0 ? ‘on‘ : ‘‘}}" data-current="0" bindtap="swichNav">系统复习</view>
  <view class="swiper-tab-list {{currentTab==1 ? ‘on‘ : ‘‘}}" data-current="1" bindtap="swichNav">难点突破</view>
  <view class="swiper-tab-list {{currentTab==2 ? ‘on‘ : ‘‘}}" data-current="2" bindtap="swichNav">统计</view>
  </view>
</view>
<swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:{{winHeight-31}}px" bindchange="bindChange">
  <!-- 系统复习 -->
  <swiper-item>

    <view class="stop-icon">
    <image style="display:block;width:100px;height:100px;" bindtap="{{playAction}}" src="{{cdrom}}" ></image>

    </view>

    <view class="cat-name">
      {{music_name}} - {{author}}
    </view>
    <view class="classname">
    <audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{music}}" id="myAudio"  bindplay="funplay" bindpause="funpause" bindtimeupdate="funtimeupdate" bindended="funended" binderror="funerror"></audio>
    </view>
    <view class="pro">
      <view class="proleft">{{starttime}}</view>
      <view class="procenter body-view"><slider bindchange="sliderchange" value="{{offset}}" min="0" max="{{max}}"/></view>
      <view class="proright">{{duration}}</view>

    </view>
  </swiper-item>

  <!-- 难点突破 -->
  <swiper-item>
    <view class="classname">这里是难点页面</view>
  </swiper-item>

  <!-- 统计 -->
  <swiper-item>
    <view class="classname">这里是统计页面</view>
  </swiper-item>

</swiper>

index.wxss

/**index.wxss**/
.mycontent{padding:10rpx 0 ;}
.swiper-tab{
  width:100%;text-align: center;line-height: 80rpx;
}
.swiper-tab-list{
  font-size: 30rpx;display: inline-block;width:33.33%;color: #777777;
}
.on{color:#333;border-bottom: 5rpx solid #78CA5C;}
.swiper-box{display:block;height: 100%;width: 100%;overflow: hidden;}
.swiper-box view {text-align: center;}
.stop-icon{width:100px;height: 100px;margin:30rpx auto;border-radius: 50%;border:3rpx solid #ccc;}
.cat-name{padding:20rpx 0; }
.pro{width:90%;margin:0 auto;}
.proleft{width:20%;}
.proright {width: 20%;}
.procenter{width:50%;}
.proleft,.procenter,.proright{display: inline-block;}

js代码:

//index.js

//获取应用实例

var app = getApp()
Page({
  data: {
    motto: ‘Hello World‘,
    userInfo: {},
    winWidth:0,
    winHeight:0,
    currentTab:0,
    cdrom:‘../../resources/kind/play.png‘,
   // music:‘D:/web/testxcx/resources/audio/001.mp3‘,
    cdrompause: ‘../../resources/kind/pause.png‘,
    playAction:‘audioPlay‘,
    starttime:‘00:00‘,
    duration:‘05:00‘

  },
  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: ‘../logs/logs‘
    })
  },
  onLoad: function () {
    console.log(‘onLoad‘)
    var that = this
    this.audioCtx = wx.createAudioContext(‘myAudio‘)
    //调用应用实例的方法获取全局数据
    app.getUserInfo(function(userInfo){
      //更新数据
      that.setData({
        userInfo:userInfo,
        text:‘111111‘
      })
    });

    //获取系统信息
    wx.getSystemInfo({
      success: function(res) {
        that.setData(
          {
            winWidth:res.windowWidth,
            winHeight:res.windowHeight
          }
        );
      }
    });

    //测试异步请求
    wx.request({
      url: ‘http://test.com/xcx.php‘,
      data:{},
      success:function(msg){
        that.setData(
          {
            music_name: msg.data.music_name,
            author: msg.data.author,
            music:msg.data.music_url
          }
        );
      }
    });

  },
  /**
   * 滑动切换tab
   */
   bindChange:function(e){
      var that = this;
      that.setData({currentTab:e.detail.current});
   },
   /**
    * @desc 点击切换
    *
    */
    swichNav:function(e){
      var that = this ;
      if(this.data.currentTab === e.target.dataset.current){
        return false;
      }else{
        that.setData({
          currentTab:e.target.dataset.current
        })
      }
    },
  /**
   * @author weizenghui
   *  @version 1.0
   * @desc 播放按钮
   */
    audioPlay:function(){
      var that = this ;
      this.audioCtx.play();
      that.setData({
        playAction: ‘audioPause‘,
        cdrom: ‘../../resources/kind/pause.png‘
      })

    },
  /**
   * @desc 停止按钮
   *
   */
  audioPause: function () {
      var that = this;
      this.audioCtx.pause();
      that.setData({
        playAction: ‘audioPlay‘,
        cdrom: ‘../../resources/kind/play.png‘
      })

    },
  /**
   * @desc 播放进度触发
   *
   */
  funtimeupdate:function(e){
    var offset = e.detail.currentTime;
    var currentTime = parseInt(e.detail.currentTime);
    var min = parseInt(currentTime / 60 );
    var max = parseInt(e.detail.duration);
    var sec = currentTime % 60 ;
    var starttime = min + ‘:‘ + sec ;
    var duration = e.detail.duration;
    var offset = parseInt (offset * 100 / duration);
    var that = this;
    that.setData({
      offset: currentTime,
      starttime: starttime,
      max:max
    })
  },

  /**
   * @desc 拖动进度条
   *
   */
  sliderchange:function(e){
    console.log(e);
    var offset = parseInt( e.detail.value );
    this.audioCtx.seek(offset);

  },

  /**
   * @desc 当播放完毕时请求下一个音频
   * @author
   */
  funended:function(e){

    var that = this;
    //this.audioCtx.pause();

    wx.request({
      url: ‘http://test.com/xcx.php?next=1‘,
      data: {},
      success: function (msg) {

        that.setData(
          {
            music_name: msg.data.music_name,
            author: msg.data.author,
            music: msg.data.music_url
          }
        );
        that.audioCtx.setSrc(msg.data.music_url);
        that.audioCtx.play();

      }

    });

  }

})
时间: 2024-11-05 12:25:32

微信小程序音频播放的相关文章

微信小程序——音频播放器

先来个效果图韵下味: 需求: 音频的播放,暂停,中间按钮状态的变化,播放时实时更新播放进度: 前进15s,后退15s: 进度条拖动. 一开始想着这3个功能应该挺简单的.不就是播放,暂停,前进,后退么~呵~写的时候发现自己还是太年轻.当然,这跟自己的技术功底有关系.现在把我遇到的难点及要注意的点说一下~ 需要设置一个名为seekPosition的全局变量,初始值为0.我们要在播放的时候实时记录播放的位置,存到该变量里,这是方便在前进15s 或 后退15s 时计算时间点. 前进15s时要判断剩余时间

微信小程序如何播放腾讯视频?

1.背景 因为当时需要做视频播放,后台存放视频文件又不现实.所以,做了一个能解析腾讯视频地址的并播放视频的小程序. 2.介绍 小程序里的解析腾讯视频地址的代码是参考了一个开源项目you-get写的,把里面的腾讯视频下载的python代码写成了JS代码. 3.腾讯视频ID从哪获取 1.一般播放一个腾讯视频的时候播放地址为https://v.qq.com/x/page/w0647n5294g.html..html到最后一个/之间的字符串即为腾讯视频id.如https://v.qq.com/x/pag

微信小程序背景音频播放

需求描述:上一篇写到了  微信小程序音频播放的问题 我是应用了 一个播放的方法 wx.createAudioContext(audioId):这个方法不错 但是一旦锁频后就无法在继续播放 这次我们改进一下 当用户锁屏后仍然可以播放 ,那这里需要用的是小程序的 背景音乐的 api了 代码如下 wx.getBackgroundAudioManager() 这个是 音频背景播放方法 下面是实例化之后的可以操作的方法 示例代码: 如图所示 ,实例化 一个背景音频播放的代码 : 一下代码时我的业务逻辑,参

微信小程序(9)--音频及视频播放

记录微信小程序音频及视频播放. 1.audio <!-- audio.wxml --> <audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{src}}" id="myAudio" controls loop></audio> <button type="primary&

微信小程序实例源码大全

怎么本地测试微信小程序实例源码 1.下载源码 2.打开微信开发者工具 3.添加项目->选择本项目目录->编译执行 微信小程序实例源码大全 微信小程序游戏类demo:识色:从相似颜色中挑选不同的一个 源码链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1105 微信小程序精品demo:仿网易云音乐:歌单,FM,播放,评论 源码链接:http://www.wxapp-union.com/forum.php?mod=vie

微信小程序源码案例大全

微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo:文章列表demo 微商城(含微信小程序)完整源码+配置指南 微信小程序Demo:一个简单的工作系统 微信小程序Demo:用于聚会的小程序 微信小程序Demo:Growth 是一款专注于Web开发者成长的应用,- 微信小程序Demo: Music-Player 微信小程序Demo:团贷网(投资) 微信

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序实例源码大全demo下载

怎么本地测试微信小程序实例源码 1.下载源码 2.打开微信开发者工具 3.添加项目->选择本项目目录->编译执行 微信小程序实例源码大全 微信小程序游戏类demo:识色:从相似颜色中挑选不同的一个 源码链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1105 微信小程序精品demo:仿网易云音乐:歌单,FM,播放,评论 源码链接:http://www.wxapp-union.com/forum.php?mod=vie

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微