新增加的两个珠三角城市群最新发展之一,未来前景会怎样

微信JSSDK录音功能开发遇到的坑
1、在进行微信网页录音功能开发的时候,微信jssdk初始化一定要把用到的方法写在wx.config配置信息jsApiList中,不然调用方法起不到效果。
jsApiList: ['onMenuShareAppMessage','translateVoice','onVoiceRecordEnd','stopVoice'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
2、微信录音前会弹出“是否允许录音”,点击是才会执行wx.startRecord函数success回调,否则执行fail。所以,要把微信录音过程中相关的动作写在success回调里。**这个‘是否允许录音’提示很没有规律,在开始调试的时候很正常,只有在第一次录音和一定时间之后(这个时间没有找到规律到底是多长)弹出提示;不正常的是有段时间,微信每次都会弹出这个提示,并且在有些手机上会卡住,必须点击返回才能正常录音。
3、微信录音到60秒时会出现不执行wx.uploadVoice的bug,导致音频获取不到,解决方法是在录音到59秒的时候停止录音。微信有一个到60秒自动停止的方法,碰到的问题是进入这个方法,到60秒会自动停止,但不会执行后面的上传语音的逻辑,只是把录音停止了,写的其他动作都没执行。
wx.onVoiceRecordEnd({
// 录音时间超过一分钟没有停止的时候会执行 complete 回调
complete: function (res) {
var localId = res.localId;
4、微信录音后会返回本地音频地址,可以用wx.playVoice直接播放,上传数据时则要用wx.uploadVoice获取mediaId后上传这个数据,本地音频地址是不能上传的。等播放的时候用wx.downVoice以mediaId为参数再下载到本地播放本地音频文件。微信只会保留3天,3天过后mediaID就会失效,所以在3天内要把资源下载到自己的服务器中。
5、连续播放微信本地音频:录音之后会直接得到本地音频地址,可以用来直接播放,所以在录音页面连续播放音频时,会少一个下载音频的逻辑。如果进行连续点击音频进行播放,会导致微信方法崩溃掉,所以要加一个统一开关使音频回归到初始状态,这样再次点击时,就不会出现bug。注意:这个回归到初始化的方法要用wx.stopVoice方法。再连续播放时是自动进行的,所以这个地方也要加一个初始化操作。就是在播放每一个音频之前都加一个初始化操作,这个地方ios和Android处理方法不一样,ios要用wx.pauseVoice方法,Android要用wx.stopVoice才可以。
6、连续播放微信mediaID音频文件:在播放之前要用wx.downLoadVoice下载到本地,然后播放本地音频文件,这个地方用到了异步获取资源的操作了,这个时候在初始化时不能用遍历所有音频文件进行停止操作,需要在停止前进行判断,找出正在播放的进行停止。
7、连续播放自己服务器音频文件:这个时候用到audio标签播放,需要异步获取音频地址,所以不能再页面初始化的时候进行获取,会导致获取的结果顺序乱掉,需要在点击音频的时候在获取当前音频的url。这个时候会出现audio在某些手机上不能播放的兼容问题,就是audio地址如果是异步获取的,在第一次的时候播放不出来。解决方法是在页面中写入一个audio标签,src中放入一个时长1s的音频,在点击的时候就播放,然后异步获取音频url再进行替换。注意:ios是没有这个bug的,所以ios是不能用这个方法,如果用了就会出现bug。
8、监听audio音频播放停止事件,用到了audio标签的ended属性,如果停止了返回true。给audio标签添加监听事件,这个时候用于连续播放功能的记录顺序的下标要用全局变量。
**其他网友遇总结的问题地址:VoicePlay YouTuBe上的所有视频附带音乐下载_voiceplay吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:69贴子:
VoicePlay YouTuBe上的所有视频附带音乐下载收藏
视频来自:The Fox - VoicePlay cover音乐下载地址
视频来自:I Knew You Were Trouble _ As Long As You Love Me - A Capella音乐下载地址
吧人这么少???是不是因为YOUTUBE被和谐的关系。
咬,。你有欲望
没了???
没了吗???
求my shot和歌剧魅影
登录百度帐号推荐应用微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
作者:奋进程序猿
字体:[ ] 类型:转载 时间:
本篇文章主要介绍了微信小程序-图片、录音、音频播放、音乐播放、视屏、文件代码实例,有兴趣的可以了解一下。
本文介绍了微信小程序的开发,主要包括图片、录音、音频播放、音乐播放、视频、文件,具体如下:
wx.chooseImage(OBJECT)
从本地相册选择图片或使用相机拍照。
OBJECT参数说明:
注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。
示例代码:
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths
wx.previewImage(OBJECT)
预览图片。
OBJECT参数说明:
示例代码:
wx.previewImage({
current: '', // 当前显示图片的http链接
urls: [] // 需要预览的图片http链接列表
wx.getImageInfo(OBJECT)
获取图片信息
OBJECT参数说明:
success返回参数说明:
示例代码:
wx.getImageInfo({
src: 'images/a.jpg',
success: function (res) {
console.log(res.width)
console.log(res.height)
wx.chooseImage({
success: function (res) {
wx.getImageInfo({
src: res.tempFilePaths[0],
success: function (res) {
console.log(res.width)
console.log(res.height)
wx.startRecord(OBJECT)
开始录音。当主动调用wx.stopRecord,或者录音超过1分钟时自动结束录音,返回录音文件的临时文件路径。
OBJECT参数说明:
注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用wx.saveFile,在小程序下次启动时才能访问得到。
wx.stopRecord()
主动调用停止录音。
示例代码:
wx.startRecord({
success: function(res) {
var tempFilePath = res.tempFilePath
fail: function(res) {
//录音失败
setTimeout(function() {
//结束录音
wx.stopRecord()
音频播放控制:
wx.playVoice(OBJECT)
开始播放语音,同时只允许一个语音文件正在播放,如果前一个语音文件还没播放完,将中断前一个语音播放。
OBJECT参数说明:
示例代码:
wx.startRecord({
success: function(res) {
var tempFilePath = res.tempFilePath
wx.playVoice({
filePath: tempFilePath,
complete: function(){
wx.pauseVoice()
暂停正在播放的语音。再次调用wx.playVoice播放同一个文件时,会从暂停处开始播放。如果想从头开始播放,需要先调用 wx.stopVoice。
示例代码:
wx.startRecord({
success: function(res) {
var tempFilePath = res.tempFilePath
wx.playVoice({
filePath: tempFilePath
setTimeout(function() {
//暂停播放
wx.pauseVoice()
wx.stopVoice()
结束播放语音。
示例代码:
wx.startRecord({
success: function(res) {
var tempFilePath = res.tempFilePath
wx.playVoice({
filePath:tempFilePath
setTimeout(function(){
wx.stopVoice()
音乐播放控制:
wx.getBackgroundAudioPlayerState(OBJECT)
获取音乐播放状态。
OBJECT参数说明:
&success返回参数说明:
&示例代码:
wx.getBackgroundAudioPlayerState({
success: function(res) {
var status = res.status
var dataUrl = res.dataUrl
var currentPosition = res.currentPosition
var duration = res.duration
var downloadPercent = res.downloadPercent
wx.playBackgroundAudio(OBJECT)
播放音乐,同时只能有一首音乐正在播放。
OBJECT参数说明
wx.playBackgroundAudio({
dataUrl: '',
title: '',
coverImgUrl: ''
wx.pauseBackgroundAudio()
暂停播放音乐。
wx.pauseBackgroundAudio()
wx.seekBackgroundAudio(OBJECT)
控制音乐播放进度。
OBJECT参数说明
wx.seekBackgroundAudio({
position: 30
wx.stopBackgroundAudio()
停止播放音乐。
wx.stopBackgroundAudio()
wx.onBackgroundAudioPlay(CALLBACK)
监听音乐播放。
wx.onBackgroundAudioPause(CALLBACK)
监听音乐暂停。
wx.onBackgroundAudioStop(CALLBACK)
监听音乐停止。
wx.saveFile(OBJECT)
保存文件到本地。
OBJECT参数说明:
示例代码:
wx.startRecord({
success: function(res) {
var tempFilePath = res.tempFilePath
wx.saveFile({
tempFilePath: tempFilePath,
success: function(res) {
var savedFilePath = res.savedFilePath
wx.getSavedFileList(OBJECT)
获取本地已保存的文件列表
OBJECT参数说明:
&success返回参数说明:
&fileList中的项目说明:
&示例代码:
wx.getSavedFileList({
success: function(res) {
console.log(res.fileList)
wx.getSavedFileInfo(OBJECT)
获取本地文件的文件信息
OBJECT参数说明:
&success返回参数说明:
&示例代码:
wx.getSavedFileInfo({
filePath: 'wxfile://somefile', //仅做示例用,非真正的文件路径
success: function(res) {
console.log(res.size)
console.log(res.createTime)
wx.removeSavedFile(OBJECT)
删除本地存储的文件
OBJECT参数说明:
&示例代码:
wx.getSavedFileList({
success: function(res) {
if (res.fileList.length & 0){
wx.removeSavedFile({
filePath: res.fileList[0].filePath,
complete: function(res) {
console.log(res)
wx.openDocument(OBJECT)
新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx
OBJECT参数说明:&
wx.downloadFile({
url: '/somefile.pdf',
success: function (res) {
var filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
success: function (res) {
console.log('打开文档成功')
wx.chooseVideo(OBJECT)
拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
OBJECT参数说明:
返回参数说明:
注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。
示例代码:
&view class="container"&
&video src="{{src}}"&&/video&
&button bindtap="bindButtonTap"&获取视频&/button&
bindButtonTap: function() {
var that = this
wx.chooseVideo({
sourceType: ['album','camera'],
maxDuration: 60,
camera: ['front','back'],
success: function(res) {
that.setData({
src: res.tempFilePath
音频组件控制:
wx.createAudioContext(audioId)
创建并返回 audio 上下文 audioContext 对象
audioContext
audioContext 通过 audioId 跟一个 audio 组件绑定,通过它可以操作一个 audio 组件。
audioContext对象的方法列表:
&示例代码:
&!-- audio.wxml --&
&audio src="{{src}}" id="myAudio" &&/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
onReady: function (e) {
// 使用 wx.createAudioContext 获取 audio 上下文 context
this.audioCtx = wx.createAudioContext('myAudio')
src: 'http://ws.stream./M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd&uin=&vkey=E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',
audioPlay: function () {
this.audioCtx.play()
audioPause: function () {
this.audioCtx.pause()
audio14: function () {
this.audioCtx.seek(14)
audioStart: function () {
this.audioCtx.seek(0)
视频组件控制:
wx.createVideoContext(videoId)
创建并返回 video 上下文 videoContext 对象
videoContext
videoContext 通过 videoId 跟一个 video 组件绑定,通过它可以操作一个 video 组件。
videoContext对象的方法列表:
&示例代码:
&view class="section tc"&
&video id="myVideo" src="http://wxsnsdy./105/20210/snsdyvideodownload?filekey=2ca905ce620bdcff44e40400&bizid=1023&hy=SH&fileparam=302cffdc4ff0e8d7f"
enable-danmu danmu-btn controls&&/video&
&view class="btn-area"&
&input bindblur="bindInputBlur"/&
&button bindtap="bindSendDanmu"&发送弹幕&/button&
function getRandomColor () {
let rgb = []
for (let i = 0 ; i & 3; ++i){
let color = Math.floor(Math.random() * 256).toString(16)
color = color.length == 1 ? '0' + color : color
rgb.push(color)
return '#' + rgb.join('')
onReady: function (res) {
this.videoContext = wx.createVideoContext('myVideo')
inputValue: '',
bindInputBlur: function(e) {
this.inputValue = e.detail.value
bindSendDanmu: function () {
this.videoContext.sendDanmu({
text: this.inputValue,
color: getRandomColor()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 中国城市群新论 pdf 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信