DPR指的是设备的像数比,在制作的微信小程序的时候常用,也就相当于web前端的自适应,根据设备的像素(也就是物理像素)大小进行调节。这个参数实际上量化了屏幕的物理分辨率和显示清晰度,比如iphone的DPR就是2,比一般的手机都要高。DPR也就是设备像素比设备像素比(dpr)=设备像素(分辨率)/设备独立像素(屏幕兄做尺寸)布局视窗:屏幕大小视觉视窗:为了解决PC端网站在移动端。
小程序监控是可以有录音功能的,这个是需要我们自己去根据自己录音的要求进行软件的编撰,从而达到录音的目的。资料补充:
代码如下:
data数据
data:{
playerState: 0, //0-录音 1-播放
voice: "", //录音地址
voiceType: false, //录音切换
beginAndEnd: "请语音录入",}
image.png
image.png
image.png
image.png
开始录音
tape() {
if (this.data.playerState == 0) { //等于0,进行录音功能
//正在录音点击后就结束录音,图标也该为播放图标,功能改为播放
if (this.data.voiceType) {
//结束录音
this.setData({
voiceType: false,
src: '/assets/imgs/player.png'
})
this.end() //调用结束录音的方法
} else {
//开始录音
this.setData({
src: '/assets/imgs/voiceEnd.png',
beginAndEnd: "结束语音录入",
voiceType: true
})
wx.showToast({
title: '正在录音。。。',
icon: 'none',
duration: 60000
})
const options = {
duration: 60000, //祥则录音的时长
sampleRate: 44100, //采样率
numberOfChannels: 1, //录音通道数
encodeBitRate: 192000, //编码码率,有效值见下表格
format: 'wav', //音频格式
frameSize: 50 //指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。
}
wx.getRecorderManager().start(options) //开始录音
var num = 0
this.data.interval = setInterval(() =>{ //限时录音60s
num++
if (num >59) { //到60s调用停止录音方法
this.end()
}
}, 1000)
}
} else { //不等0也就是1,进行播放
if (this.data.voiceType) {
this.setData({
voiceType: false,
src: '/assets/imgs/player.png',
beginAndEnd: "播放录音"
})
innerAudioContext.stop() //停止。停止后的音频再播放会从头开始播放。
} else {
this.setData({
voiceType: true,
src: '/assets/imgs/stop.png',
beginAndEnd: "停止播放"
})
//音频的数据链接,用于直接播放,仅支持绝对路径。
innerAudioContext.src = this.data.voice
innerAudioContext.play() //播放
innerAudioContext.onEnded(() =>{ //监听音频自然播放至结束的事件
innerAudioContext.stop() //停止。
this.setData({
voiceType: false,
src: '/assets/imgs/player.png',
beginAndEnd: "播放录音"
})
})
}
}
},
结束录音
//结束录音
end() {
clearInterval(this.data.interval) //清除定时器
wx.hideToast() //隐藏正则录音的图搏洞标
wx.showToast({
title: '录音结束。。。',
icon: 'none',
duration: 2000
})
this.setData({
beginAndEnd: "播放语音",
playerState: 1,
voiceType: false
})
var that = this
//监听录音结束事件谨银棚
wx.getRecorderManager().onStop(res =>{
console.log(res)
//调用自定义事件,把音频上传并返回音频路径
const {
uploadRecord } = require('../../../http/picture.js')
uploadRecord(res.tempFilePath).then(res =>{
console.log(res)
that.setData({
voice: JSON.parse(res).data,
state: 1
})
})
})
wx.getRecorderManager().stop() //停止录音
},
作者:Flipped_kk
链接:https://www.jianshu.com/p/71f2e94c3334
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
import java.util.Scannerpublic class SavingAccount {
public static double account = 3000
public static double rate = 0.03
public void update(double rate){
this.rate = rate
}
//flag 用来计算年利息和月利息,flag等true计算月利息
public double calc(double account , double rate , boolean flag){
if(flag)
return account * rate / 12
return account * rate
}
static class Test{
public static void main(String[] args) {
System.out.println("原始存款:"+SavingAccount.account + " \n原始利率:" +SavingAccount.rate )
SavingAccount sa = new SavingAccount()
System.out.println("原始年利息:"+sa.calc(SavingAccount.account,SavingAccount.rate,false))
System.out.println("原始月利息:"+sa.calc(SavingAccount.account,SavingAccount.rate,true))
System.out.println("######请输入新的利率######")
Scanner scanner = new Scanner(System.in)
sa.update(scanner.nextDouble())
System.out.println("更新后的利率:"+SavingAccount.rate)
System.out.println("更新后的年利息:"+sa.calc(SavingAccount.account,SavingAccount.rate,false))
System.out.println("更新后的月利息:"+sa.calc(SavingAccount.account,SavingAccount.rate,true))
//更新后的存款怎么算? 你念亏是多长时间更新一次厅卜?
System.out.println("更新后的存款:"+(SavingAccount.account+sa.calc(SavingAccount.account,SavingAccount.rate,false)))
}
}
}
不扮高穗知道对不对,我理解的是这样的了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)