record.js 8.2 KB
// pages/record/record.js
const app = getApp();
var amapFile = require('../../libs/amap-wx.js');
var config = require('../../libs/config.js');
var bgM = wx.createInnerAudioContext();
Page({
  /**
   * 页面的初始数据
   */
  data: {
    play:true, //true为播放,flase暂停
    //地图数据
    markers: [],//显示点的坐标对象
    latitude: '',//当前显示的点维度
    longitude: '',//当前显示点的经度
    scale:'12',
    src:'',
    startsec:'00:00',
    endsec:'00:00',
    palyrate:'',//播放的百分比
    poster_id:'',//海报ID
    musicsrc:'',
    duration:0
  },
  //生成静态地图
  getStaticmap(markers) {
    var that = this;
    var key = config.Config.key;
    var myAmapFun = new amapFile.AMapWX({ key: key });
    wx.getSystemInfo({
      success: function (data) {
        var height = 300;
        var width = 500;
        var size = width + "*" + height;
        myAmapFun.getStaticmap({
          zoom: 8,
          size: size,
          scale: 2,
          location: "120.644312,31.421561",//中心点苏州火车北站
          markers: markers,
          success: function (data) {
            that.setData({
              staticsrc: data.url
            })
          },
          fail: function (info) {
            // wx.showModal({title:info.errMsg})
          }
        })
      }
    })
  },
  goshare_code(){
    wx.navigateTo({
      url: '../share_code/share_code',
      success: function(res) {},
      fail: function(res) {},
      complete: function(res) {},
    })
  },
  audioPlay: function (e) {//播放
    let that=this;
    that.setData({
      play:false
    })
    bgM.src = that.data.musicsrc;
    bgM.play();
    setTimeout(() => {
      bgM.currentTime
      bgM.onTimeUpdate(() => {
        let palyrate = (parseInt(bgM.currentTime) / parseInt(bgM.duration)) * 100;//播放的百分比
          that.setData({
            startsec: '00:' +(bgM.currentTime.toFixed(0) < 10 ? '0' + bgM.currentTime.toFixed(0) : bgM.currentTime.toFixed(0)),
            endsec: '00:' +(bgM.duration.toFixed(0) < 10 ? '0' + bgM.duration.toFixed(0) : bgM.duration.toFixed(0)) ,
            palyrate: palyrate
          })
      })
      bgM.onEnded(() => {
        that.setData({
          startsec: '00' + ':00',
          endsec: '00:' +( bgM.duration.toFixed(0) < 10 ? '0' + bgM.duration.toFixed(0) : bgM.duration.toFixed(0)) ,
          palyrate: 0,
          play: true
        })
      })
      that.setData({
        duration: bgM.duration
      })
    }, 1000)
  },
  audioPause: function () {//暂停
    let that = this;
    that.setData({
      play: true
    })
    bgM.pause();
  },
  //根据坐标显示点
  getlocationmap(location,id){
    var that = this;
    let markers = that.data.markers;    
    var key = config.Config.key;
    var myAmapFun = new amapFile.AMapWX({ key: '856d7698b954d8c2356bce3a3be86f1d'});
      myAmapFun.getRegeo({
        iconPath: "../../images/yingfu.png",
        iconWidth: 22,
        iconHeight: 32,
        location: location,
        success: function (data) {
          var newmarker = {
            id: id,
            latitude: data[0].latitude,
            longitude: data[0].longitude,
            iconPath: data[0].iconPath,
            width: data[0].width,
            height: data[0].height
          }
          markers[id] = newmarker;
          that.setData({
            markers: markers
          });
          console.log(that.data.markers)
          that.setData({
            latitude: data[0].latitude
          });
          that.setData({
            longitude: data[0].longitude
          });
          that.setData({
            textData: {
              name: data[0].name,
              desc: data[0].desc
            }
          })
        },
        fail: function (info) {
          
        }
      })
  },
  makertap(e) {
    console.log(e);
    var that = this;
    var id = e.markerId;
  },
  getdata(){
    let that=this;
    let url ='home/home/click_one';
    let params={
      id: that.data.poster_id
    }
    app.post(url, params,{}).then((res)=>{
      if(res.code==20000){
        that.setData({
          musicsrc: res.url 
        })
        bgM.src = that.data.musicsrc;
        for (let i in res.coordinate){
          that.getlocationmap(res.coordinate[i], i);
        }
      }
    }).catch((errMsg)=>{
    })
  },
  //保存图片
  saveImg() {
   
   let that=this;
    // let params = {
    //   pages: '/pages/share_record/share_record',
    //   scene: that.data.poster_id,
    // }
    console.log(typeof wx.getStorageSync('staticsrc'))
    let params={
      file: wx.getStorageSync('staticsrc'),
      poster_id: that.data.poster_id,
      page: 'pages/start/start'
    }
    // let url = 'home/home/code';
    let url = 'home/home/poster';
    app.post(url, params,{}).then((res) => {
      
      if(res.code == 20000){
       
        let imgUrl = res.url
        wx.showLoading({
          title: '加载中',
        })
        wx.downloadFile({
          url: imgUrl,
          success: function (res) {
            wx.saveImageToPhotosAlbum({
              filePath: res.tempFilePath,
              success: function (res) {
                wx.hideLoading()
                wx.showToast({
                  icon: 'none',
                  title: '图片保存成功,可以分享到朋友圈'
                })
              },
              fail: function (res) {
                wx.showToast({
                  icon: 'none',
                  title: '图片保存失败'
                })
                console.log(res)
              }
            })
          },
          fail: function (res) {
            // wx.showModal({
            //   title: '提示',
            //   content: '图片保存失败,请重试',
            //   showCancel: false
            // })
          }
        })
      }
      
    }).catch((errMsg) => {
      // wx.showModal({
      //   title: '提示',
      //   content: errMsg,
      //   showCancel: false
      // })
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   let that=this;
   that.setData({
     poster_id: options.poster_id,
   
   })
    that.getdata();
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
   
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    bgM.pause();
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
   
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (options) {
    let that=this;
    // 设置菜单中的转发按钮触发转发事件时的转发内容
    var shareObj = {
      title:'踏趣苏州', // 默认是小程序的名称(可以写slogan等)
      path: '/pages/share_record/share_record?poster_id=' + that.data.poster_id, // 默认是当前页面,必须是以‘/’开头的完整路径
      imgUrl: '',//自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
      success: function (res) {
        // 转发成功之后的回调
        if (res.errMsg == 'shareAppMessage:ok') { }
      },
      fail: function () {
        // 转发失败之后的回调
        if (res.errMsg == 'shareAppMessage:fail cancel') {
          // 用户取消转发
        } else if (res.errMsg == 'shareAppMessage:fail') {
          // 转发失败,其中 detail message 为详细失败信息
        }
      },
      complete: function () {
        // 转发结束之后的回调(转发成不成功都会执行)
      }
    }   // 来自页面内的按钮的转发

    if (options.from == 'button') {
      // 此处可以修改 shareObj 中的内容
      // shareObj.path = '/pages/start/start?status=' + options.target.dataset.status
    }   // 返回shareObj

    return shareObj;
  }
})