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

永久免费网站推荐wordpress 修改页面链接地址

永久免费网站推荐,wordpress 修改页面链接地址,什么叫优化,做简单的网站首页前言 最近在开发一款即时通讯(IM)的聊天App#xff0c;在实现语音消息功能模块后#xff0c;写下该文章以做记录。 注#xff1a;本文不提供相关图片资源以及IM聊天中具体实现代码#xff0c;单论语音功能实现思路 需求分析 比起上来直接贴代码#xff0c;我们先来逐步…前言 最近在开发一款即时通讯(IM)的聊天App在实现语音消息功能模块后写下该文章以做记录。 注本文不提供相关图片资源以及IM聊天中具体实现代码单论语音功能实现思路 需求分析 比起上来直接贴代码我们先来逐步分析一下一个正常语音消息的需求是如何的 长按语音按钮录制用户语音内容 松开按钮后发送语音消息至目标 从上可得我们需要针对于用户的语音 录制 播放 方面下手 Flutter_sound 目标地址https://pub.dev/packages/flutter_sound 简介Flutter_sound 是一款可以处理用户声音库 通过该插件的GitHub示例中可以了解到实现录制语音和播放的相关API为 FlutterSoundPlayer下的startRecorder方法 (录制) FlutterSoundPlayer下的startPlayer方法 (播放) 实现思路 初始化Flutter_Sound配置 定义相关变量 FlutterSoundPlayer flutterSoundPlayer FlutterSoundPlayer(); //声音播放器 FlutterSoundRecorder recordSound FlutterSoundRecorder(); //声音录制器 Timer? recordTimer // 计时器用来控制录音时长; String timeString “” // 用来做回显时长 List voicePlayList []; //用来控制语音播放列表 String voicePath “”; //临时储存语音文件路径 初始化声音配置方法 /** author Marinda* date 2023/6/26 15:25* description 初始化声音设置*/initSoundSetting() async{await flutterSoundPlayer.openPlayer();await recordSound.openRecorder();}录制用户语音 /** author Marinda* date 2023/6/26 15:31* description 录音*/recordSound() async{PermissionStatus status await Permission.microphone.request();int time 0;//权限校验if (status ! PermissionStatus.granted) throw RecordingPermissionException(麦克风权限未授权);var dir await getExternalStorageDirectory();Uuid uuid Uuid();String filePath p.join(dir?.path ?? ,uuid.v4().mp4);File file File(filePath);file.openWrite();state.voicePath.value filePath;Log.i(录音保存的位置${filePath});await state.recordSound.startRecorder(//目标文件位置toFile: filePath,//这里可以认为是那种源codec: Codec.aacMP4,//采样率bitRate: 8000,//为1即可numChannels: 1);recordTimer Timer.periodic(Duration(seconds: 1), (_) {time;timeString time.toString();});}播放实现 /** author Marinda* date 2023/10/7 14:28* description 播放语音信息 目前先做本地语音缓存处理*/playVoice(String voiceUrl) async{Uint8List uint8list Uint8List(0);//视为网络httpif(voiceUrl.startsWith(http)){uint8list ...获取MP4文件二进;}else{File voiceFile File(voiceUrl);//如果不存在if(!voiceFile.existsSync()){BotToast.showText(text: 语音播放失败);return;}uint8list await voiceFile.readAsBytes();}//如果存在则进行移除播放if(voicePlayList.contains(tag)){voicePlayList.remove(tag);await flutterSoundPlayer.stopPlayer();return;}//加入语音信息队列voicePlayList.add(tag);await flutterSoundPlayer.startPlayer(fromURI: data.expandAddress,fromDataBuffer: uint8list,codec: Codec.aacMP4,sampleRate: 8000,numChannels: 1,whenFinished: (){// 播放完毕state.voicePlayList.remove(tag);});} 结束录制 /** author Marinda* date 2023/6/26 15:33* description*/stopRecordSound() async{await recordSound.stopRecorder();if(recordTimer!.isActive){recordTimer!.cancel();recordTimer null;}// 这里实现你的语音消息发送逻辑Log.i(停止录制);timeString.value ;voicePath.value ;}结束语 难度不大主要是围绕着录音文件进行处理 值得注意的点是在播放录音文件时 记得获取目标的二进制流一并携带至startPlayer方法fromDataBuffer字段中 否则可能会出现无法播放或程序未响应等危险情况 感谢你的观看
http://www.hkea.cn/news/14370130/

相关文章:

  • 永川做网站的wap建站程序源码
  • 北京便宜网站建设韩国互联网公司排名
  • asp网站开发工具神器成都php网站制作程序员
  • vi设计收费杭州 seo网站建设 网络服务
  • 北京网站建设 奥美通全网营销兰州做网站企业
  • 一站式做网站哪家好wordpress主题知更
  • iis搭建多个网站网站设计专业
  • 茂名网站制作策划宣传页在线设计软件
  • 一个网站如何做cdn加速器长沙公司有哪些
  • 网站建设预算和流程介绍优化网站性能
  • 开源企业网站源码网站备案没公司
  • 智慧团建网站入口pc端注册过什么网站
  • 外国设计网站推荐合肥网站优化选哪家
  • 厦门建设局网站商品房wordpress博客主题源码
  • 网站建设时间规划成都网站建设需要多少钱
  • 电脑上做网站购物网站开发介绍
  • 广东省城乡建设部网站首页聊城菜鸟网站建设公司
  • 云卡会员管理系统沈阳seo自然优化排名
  • 简述建设一个网站的一般过程免费网络连接软件
  • 制作网站的软件什么好用wordpress交流
  • wordpress 获取评论上海网站seo策划
  • 学校网站建设工作内容简述企业网站的基本功能
  • 香奈儿网站建设的目标网站开发的技术难点
  • 上海城建设计院网站fireworks网页设计教程
  • 织梦做小游戏网站营销网站一般包括哪些内容
  • 档案门户网站建设方案简单asp网站
  • 成都模板网站建设乌兰察布做网站的公司
  • 推广员网站大连建站费用
  • 如何创建平台类网站网站平台建设多少钱
  • 云网站开发汽车之家网站