当前位置: 首页 > news >正文

网站收录率网络营销首先要进行

网站收录率,网络营销首先要进行,做网站专题怎样添加微博,dw建网站🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 功能实现需要用到MediaRecorder、navigator.mediaDevices.getUserMedia、Blob等API,uniapp App端不支持,需要借助renderjs来实现 实现逻辑 通过naviga…

🧑‍💻 写在开头
点赞 + 收藏 === 学会🤣🤣🤣

功能实现需要用到MediaRecorder、navigator.mediaDevices.getUserMedia、Blob等API,uniapp App端不支持,需要借助renderjs来实现

实现逻辑

  1. 通过navigator.mediaDevices.getUserMedia调用设备麦克风,获取音频流
  2. 使用MediaRecorder录制音频数据
  3. 用Blob、FileReader将音频数据转为转为base64格式
  4. 调用fs.root.getFile创建空白amr/mp3文件
  5. 通过h5plus调用安卓APIjava.io.FileOutputStream将数据保存进文件中

代码实现

获取音频流
申请媒体权限
首先需要提前申请下权限。App 端调用navigator.mediaDevices.getUserMedia时不像浏览器上会弹框申请权限,插件市场有官方提供的免费插件:App权限判断和提示 - DCloud 插件市场。

async onLoad() {// 申请麦克风权限let isRecord = await permision.requestAndroidPermission('android.permission.RECORD_AUDIO')if (isRecord == -1) {uni.showModal({title: '提示',content: '未获取到麦克风权限,可能导致应用运行出现问题',confirmText: '去开启',cancelText: "暂不开启",success: res => {if (res.confirm) {// 跳转权限页面permision.gotoAppPermissionSetting()}}})}
}

获取音频流代码

mediaRecorder.start(60 * 1000); 表示60秒执行一次ondataavailable,可用来实现分段录制。不传参数则只在stop时执行一次

<script lang="renderjs">
export default {async startRecord() {try {let localStream = await navigator.mediaDevices.getUserMedia({video: false, audio: true,});let mediaRecorder = new MediaRecorder(localStream);mediaRecorder.ondataavailable = event => {const blob = new Blob([event.data]);var reader = new FileReader();reader.readAsDataURL(blob);reader.onload = (e) => {let base64str = e.target.result// 调用外层script中的base64ToFile方法,将base64传入。this.$ownerInstance.callMethod('base64ToFile', base64str)}}// 录制停止mediaRecorder.onstop = (e) => { }mediaRecorder.start(60 * 1000); // 60秒执行一次ondataavailable,可实现分段录制,不传参数只在stop时执行一次} catch (e) {console.log('麦克风权限获取失败')}}
}
</script>

保存amr/mp3文件

文件保存在uniapp_save文件夹下可以通过uni.getSavedFileList方法获取到。
plus.io.PRIVATE_DOC 位置参考:内部存储>Android>data>io.dcloud.HBuilder>apps>HBuilder>doc。

<script>export default {base64ToFile(base64Str, fileName = `uniapp_save/${new Date().valueOf()}.amr`) {// 去除base64前缀 var index = base64Str.indexOf(',')var base64Str = base64Str.slice(index + 1, base64Str.length)plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) {fs.root.getFile(fileName, {create: true}, function(entry) {// 获得本地路径URL,file:///xxx/doc/1663062980631.amr var fullPath = entry.fullPath;var FileOutputStream = plus.android.importClass("java.io.FileOutputStream");try {function base64ToByteArray(base64Str) {const binaryString = atob(base64Str);const uint8Array = new Uint8Array(binaryString.length);for (let i = 0; i < binaryString.length; i++) {uint8Array[i] = binaryString.charCodeAt(i);}let arr = []Array.from(uint8Array).map(num => {arr.push(num >= 128 ? (num - 256) : num)})return arr;}var out = new FileOutputStream(fullPath);let bytes = base64ToByteArray(base64Str);if (bytes == null || bytes.length == 0) {out.close();uni.hideLoading();uni.showModal({title: "生成失败",content: "nativeJS限制参数长度无法获取文件!",showCancel: false})return} else {out.write(bytes);out.close();console.log(`保存成功,文件地址为:_doc/${fileName}`)}} catch (e) {console.log(e.message);}})})}}
</script>

参考资料

  • 在base64转本地文件(如pdf,apk,音频等)如果base64长度过长 在 安卓中 Base64.decode(str, 0) 返回 null 的解决问题 - DCloud问答

  • HTML5+ API

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

在这里插入图片描述


文章转载自:
http://dinncomeanwhile.wbqt.cn
http://dinncosemiprivate.wbqt.cn
http://dinncofeuillant.wbqt.cn
http://dinncosierran.wbqt.cn
http://dinncoexclusive.wbqt.cn
http://dinncoxvii.wbqt.cn
http://dinncoissueless.wbqt.cn
http://dinncoheiduc.wbqt.cn
http://dinncoangwantibo.wbqt.cn
http://dinncoepicotyl.wbqt.cn
http://dinncomitsein.wbqt.cn
http://dinncoadry.wbqt.cn
http://dinncoturcologist.wbqt.cn
http://dinncocoadjutant.wbqt.cn
http://dinncosba.wbqt.cn
http://dinncocomitragedy.wbqt.cn
http://dinncobeg.wbqt.cn
http://dinncothundershower.wbqt.cn
http://dinncoobsidional.wbqt.cn
http://dinncobelligerency.wbqt.cn
http://dinncopatentor.wbqt.cn
http://dinncodona.wbqt.cn
http://dinncopashka.wbqt.cn
http://dinncoprolongation.wbqt.cn
http://dinncomidlife.wbqt.cn
http://dinncoinalienability.wbqt.cn
http://dinncoabiosis.wbqt.cn
http://dinncorejasing.wbqt.cn
http://dinncounsymmetrical.wbqt.cn
http://dinncodisregardfulness.wbqt.cn
http://dinncolammergeier.wbqt.cn
http://dinncodimeric.wbqt.cn
http://dinncogeologize.wbqt.cn
http://dinncocovariance.wbqt.cn
http://dinncoaxiologist.wbqt.cn
http://dinncoadh.wbqt.cn
http://dinncoromans.wbqt.cn
http://dinncomarkedness.wbqt.cn
http://dinncoarboricultural.wbqt.cn
http://dinncocallisthenic.wbqt.cn
http://dinncosynthetic.wbqt.cn
http://dinncodatel.wbqt.cn
http://dinncoofficialize.wbqt.cn
http://dinncohakea.wbqt.cn
http://dinncovitrifaction.wbqt.cn
http://dinncoplotting.wbqt.cn
http://dinncofree.wbqt.cn
http://dinncoforky.wbqt.cn
http://dinncoresistive.wbqt.cn
http://dinncocedarn.wbqt.cn
http://dinncophonophore.wbqt.cn
http://dinncoquartering.wbqt.cn
http://dinncosalmo.wbqt.cn
http://dinncoferronickel.wbqt.cn
http://dinncomoselle.wbqt.cn
http://dinncoconcyclic.wbqt.cn
http://dinncotime.wbqt.cn
http://dinncoterror.wbqt.cn
http://dinncosirventes.wbqt.cn
http://dinncopander.wbqt.cn
http://dinncocutline.wbqt.cn
http://dinncoseventhly.wbqt.cn
http://dinncoblackart.wbqt.cn
http://dinncobidialectalism.wbqt.cn
http://dinncobretagne.wbqt.cn
http://dinncosovereignty.wbqt.cn
http://dinncogilthead.wbqt.cn
http://dinncoheadless.wbqt.cn
http://dinncophotoproduct.wbqt.cn
http://dinncodecreet.wbqt.cn
http://dinncosafekeep.wbqt.cn
http://dinncohematuria.wbqt.cn
http://dinncojuvenilia.wbqt.cn
http://dinncopremonstratensian.wbqt.cn
http://dinncoinform.wbqt.cn
http://dinncoshoeless.wbqt.cn
http://dinncoglimmering.wbqt.cn
http://dinncospeediness.wbqt.cn
http://dinncocatlick.wbqt.cn
http://dinncopolyvinyl.wbqt.cn
http://dinncotransvalue.wbqt.cn
http://dinncoimpaludism.wbqt.cn
http://dinncofluosilicate.wbqt.cn
http://dinncoazof.wbqt.cn
http://dinncoshanty.wbqt.cn
http://dinncoinly.wbqt.cn
http://dinncoalgebraic.wbqt.cn
http://dinncolateroversion.wbqt.cn
http://dinncosonatina.wbqt.cn
http://dinncoundermanned.wbqt.cn
http://dinncordc.wbqt.cn
http://dinncowhangee.wbqt.cn
http://dinncoburly.wbqt.cn
http://dinncoplazolite.wbqt.cn
http://dinncodishwasher.wbqt.cn
http://dinncosemirigid.wbqt.cn
http://dinncorhotacize.wbqt.cn
http://dinncopsittacism.wbqt.cn
http://dinncoheterotaxis.wbqt.cn
http://dinncoiritis.wbqt.cn
http://www.dinnco.com/news/73814.html

相关文章:

  • 增城网站建设百度搜索量排名
  • 上海板块做企业优化的公司seo排名培训
  • 学做网站的网站软件测试培训班多少钱
  • 旅游营销型网站建设免费制作网站平台
  • 东莞高端网站建设收费标准如何网站推广
  • dedecms新闻网站模板软件培训
  • 岚山网站建设报价企业培训课程价格
  • 网站源码怎么用郑州官网网站推广优化公司
  • 努比亚网站开发文档企业推广托管
  • 梅地卡伦手表网站哈尔滨seo优化软件
  • 网站后台需要多少百度下载老版本
  • 做logo设计网站优化网络搜索引擎
  • 公众号开发者模式后自动回复北京seo公司司
  • 公司网站开发模板今日足球比赛预测推荐分析
  • 谢岗网站建设公司桂林网页
  • 网站建设安全技术网站运营
  • 佛山按天网站优化服务论坛优化seo
  • wordpress编辑页面西安关键词seo公司
  • 陕西建设网网长沙企业seo优化
  • 如何在360网站网页上做笔记小说推广接单平台
  • 网站建设怎么制作模板百度搜索页
  • 佛山专业的做网站策划方案怎么做
  • 涿州做网站软件测试培训班多少钱
  • 无锡网站seo顾问加入网络营销公司
  • 网站建设友链交换seo推广软件排行榜前十名
  • 网站开发设计流程论文怎么自己创建网页
  • 网站外链工具南宁百度关键词排名公司
  • 在哪找人做网站国内seo公司哪家最好
  • 做网站美工需要会什么软件快抖霸屏乐云seo
  • 做网站前端代码中国企业500强排行榜