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

口碑营销中容易出现哪些问题成都seo培

口碑营销中容易出现哪些问题,成都seo培,wordpress 留言信息在哪,公司旅游视频网站模板文章目录 一、前言二、内容组成1、权限获取2、针对设备兼容3、内容类型转换4、传输存储 三、拓展内容自动播放部分 一、前言 主要针对前端适配录音能力的简要记录#xff0c;针对默认的wav及其可能需要转换到特定的mp3之类格式以适配需求的问题。#xff08;这类通常是兼容tt… 文章目录 一、前言二、内容组成1、权限获取2、针对设备兼容3、内容类型转换4、传输存储 三、拓展内容自动播放部分 一、前言 主要针对前端适配录音能力的简要记录针对默认的wav及其可能需要转换到特定的mp3之类格式以适配需求的问题。这类通常是兼容tts或客服语音备份 这里纠结点主要会是在 ios/android设备的兼容及 类型转换的问题 二、内容组成 主要围绕下面几个重要组成部分 ①权限获取 ②针对设备兼容 ③内容类型转换 ④传输存储 1、权限获取 这里首先需要确定的一点是获取录音权限除了通常的 localhost 之外仅有证书存在的domain/ip 浏览器才会允许获取权限。哪怕是自定义证书也是可以的 针对app端部分内容嵌入适配 这里主要是考虑到app的基础配置基于前者的情况下截止操作时间2023.8.1 Android 其实根据通用的方式就是动态设置哪个webview使用设置哪个。 !-- 所需权限列表 -- uses-permission android:nameandroid.permission.INTERNET / uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE / uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE / uses-permission android:nameandroid.permission.RECORD_AUDIO / uses-permission android:nameandroid.permission.MODIFY_AUDIO_SETTINGS ///伪代码部分AudioWebView.setWebChromeClient(new WebChromeClient() {Overridepublic void onProgressChanged(WebView view, int newProgress) {super.onProgressChanged(view, newProgress);}Overridepublic void onPermissionRequest(PermissionRequest request) {if (Build.VERSION.SDK_INT Build.VERSION_CODES.LOLLIPOP){//直接无脑同意即可request.grant(request.getResources());}}}); //这里是基础链接 AudioWebView.loadUrl({{baseUrl}});IOS 这里补充一点即便webview已经允许你调用录音某种情况下其实也存在某些版本每次调用前询问所以最好做好预案 Tips: ios中叫做 WKWebView //伪代码部分 import AVFoundation// 请求录音权限 func requestRecordPermission() {AVAudioSession.sharedInstance().requestRecordPermission { granted inif granted {// 用户授权了录音权限可以加载WebView了self.loadWebView()} else {// 用户拒绝了录音权限处理相应逻辑// 例如给出提示或者禁用录音功能}} }// 加载WebView func loadWebView() {// 在此处加载WebView调用录音的网页功能 }2、针对设备兼容 这里的兼容主要是针对设备部分的区分吧。 首先声明 ios 与 Android 的区别 android : 在对应的webview中当且通常仅需首次获取权限即可。高版本会有选项永久还是单次 ios 通常在 wkwebvie 中每次都需要获取录音权限这个是兼容低版本ios考虑 建议解决方案 android 针对安卓的内容可以采取默认仅请求一次然后利用本地缓存来保存标记。 当标记失效则可以通过其他方式让其重新授权即可 ios 针对苹果的内容不可排除新版本已经解决这个问题但是出于兼容考虑 还是预先做好 调用权限 的处理避免需要的时候不存在权限。 3、内容类型转换 这里主要是考虑到可能存在的调用 asr接口 会需要适配不同的音频类型。 可以简单参考 语音厂商参数对比 默认来说浏览器部分我们通常采用 window.AudioContext || window.webkitAudioContext 的模式来获取录音内容。 如果需要切换类型我们可以采用 lame.js 来转换所需的MP3类型 。 Tip: 其他类型目前暂未需要如有建议感谢提供 4、传输存储 整个过程中其实最好使用blob格式传输附加文件类型 示例 let blob new Blob(mp3Data, { type: audio/mp3 }); 例如websock中传递的时候实际上大都需要我们重新加载一下格式如果直接blob可能存在无法识别的问题 // 伪代码 // 其中 res 为传递过程中的blob内容 if (suffix .mp3 || suffix .wav) {let newBlob new Blob([res.blob], {type: audio/ types,});console.log(image types: types);console.log(and the new blob is: newBlob);let originSrc (window.URL || window.webkitURL).createObjectURL(newBlob);attachmentDom audio controlscontrols src originSrc /audio;suffixHandler true;}三、拓展内容 自动播放部分 这里其实android 很容易实现直接通过controls即可控制auto 自动播放 主要是 ios 部分, 由于ios的一些机制问题不能直接去自动播放可以参考如下的方式 其实就是模拟用户交互来达成 /*** 初始化录音*/ function forceSafariPlayAudio() {if (trys 0) {audio.src https://www.runoob.com/try/demo_source/horse.mp3audio.load(); // iOS 9 还需要额外的 load 一下, 否则直接 play 无效audio.play(); // iOS 7/8 仅需要 play 一下trys 1audioType 1}}$(function () {function log(info) {console.log(info);}audio document.getElementById(bgmusic);audio.loop falseaudio.muted true// 可以自动播放时正确的事件顺序是// loadstart -- loadedmetadata -- loadeddata --canplay --play -- playing// 不能自动播放时触发的事件是// iPhone5 iOS 7.0.6 loadstart// iPhone6s iOS 9.1 loadstart - loadedmetadata - loadeddata - canplayaudio.addEventListener(loadstart, function () {log(loadstart);}, false);audio.addEventListener(loadeddata, function () {log(loadeddata);}, false);audio.addEventListener(loadedmetadata, function () {log(loadedmetadata);}, false);audio.addEventListener(canplay, function () {log(canplay);}, false);audio.addEventListener(play, function () {log(play);// 当 audio 能够播放后, 移除这个事件console.log(初始化成功)window.removeEventListener(touchstart, forceSafariPlayAudio, false);}, false);audio.addEventListener(playing, function () {log(playing);}, false);audio.addEventListener(pause, function () {log(pause);}, false);audio.addEventListener(ended, function () {audioType 0;}, false);// 由于 iOS Safari 限制不允许 audio autoplay, 必须用户主动交互(例如 click)后才能播放 audio,// 因此我们通过一个用户交互事件来主动 play 一下 audio.window.addEventListener(touchstart, forceSafariPlayAudio, false);audio.src https://www.runoob.com/try/demo_source/horse.mp3})
http://www.hkea.cn/news/14304061/

相关文章:

  • 自己做网站制作流程企业新网站seo推广
  • 网站开发 wenzhou编程猫加盟条件和费用
  • 个人音乐分享网站源码湘潭网站建设 磐石网络实惠
  • 淘宝客建网站网站域名注册
  • 被他人备案后做违法网站做网站哪家公司便宜
  • 上海做网站找哪个公司好学校网站设计实验报告
  • 自助网站免费wordpress 网站工具栏
  • 网站域名地址查询河北邯郸最新消息
  • 南宁企业网站制作搞笑图片在线制作生成器
  • 中国农村建设投资有限公司网站首页360免费建站模板
  • 重庆彼客的网站是谁家做的抖音推广平台入口
  • 企业网站建设论文5000做二手网站有哪些
  • 网站有多少个网站的建设的项目介绍怎么写
  • 丽水网站开发wordpress漫画商城
  • 长春建站网站南通城乡住房建设厅网站首页
  • 做网站编程装饰工程有限公司起名大全
  • 保定建设信息网站高校学生红色网站建设
  • 网站建设 分析网站构成三要素
  • 网站开发团队公司模式怎么自己开发网址
  • 淄博网站公司南京做企业号微网站营销
  • WordPress做大站北京公司摇号需要哪些资格条件
  • 沈阳企业定制网站建设上海高端网页设计公司
  • 做网站登录页面的论文常用网站字体
  • 自己做免费手机网站吗深圳航空人工服务电话
  • 一流的铁岭做网站公司做盈利的设计素材网站有前途
  • 做任务的电脑网站网站防止盗图
  • 吉林建设网站全球中文网站排名
  • 上海网站建设红旗韶关网站建设公司
  • 网站内容及内链建设咖啡设计网站
  • 太原网站建设如何把网站上传到网上