Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。

详情请查看

效果图:

详情请参考 Flutter高仿微信-第29篇-单聊 , 这里只是提取语音聊天实现的部分代码。

实现代码:

//我的语言
Widget meVoiceWidget(){return InkWell(onTap: () {widget.clickVoiceCallback(true);setState(() {widget.chatBean.isPlayVoice = true;});//点击语音AudioPlayer.getInstance().playLocal(widget.chatBean.voiceLocal??"", callback: (data){//录音回调setState(() {widget.chatBean.isPlayVoice = false;});});},child : Container(width: 120,height: 40,padding: EdgeInsets.symmetric(vertical: 4.0, horizontal: 2.0),decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(1.0),),color: Color(0xFF9EEA6A),),child: Row(crossAxisAlignment: CrossAxisAlignment.center,mainAxisAlignment: MainAxisAlignment.center,children: [Text("${widget.chatBean.second}''"),SizedBox(width: 4,),widget.chatBean.isPlayVoice?Image.asset("assets/chat/wn_chat_me_animator.gif", height: 24,):Image.asset("assets/chat/wn_chat_me_volume_3.png", height: 24,),],),));
}
//朋友的语音
Widget toVoiceWidget(){return InkWell(onTap: () {setState(() {widget.chatBean.isPlayVoice = true;});LogUtils.d("点击语音");AudioPlayer.getInstance().playLocal(widget.chatBean.voiceLocal??"", callback: (data){LogUtils.d("录音回调:${data}");setState(() {widget.chatBean.isPlayVoice = false;});});},child : Container(width: 120,height: 40,padding: EdgeInsets.symmetric(vertical: 4.0, horizontal: 2.0),decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(5.0),),color: Color(0xFFEDEDED)),child: Row(crossAxisAlignment: CrossAxisAlignment.center,mainAxisAlignment: MainAxisAlignment.center,children: [widget.chatBean.isPlayVoice?Image.asset("assets/chat/wn_chat_other_animator.gif", height: 34,):Image.asset("assets/chat/wn_chat_other_volume_3.png",  height: 34,),SizedBox(width: 4,),Text("${widget.chatBean.second}''"),],),));
}
//发送多媒体(图片、语音、小视频)
void _sendMedia(int type, String mediaURL, {int mediaSecond = 0, String messageId = ""}) async {bool isNetwork = await CommonNetwork.isNetwork();if(!isNetwork) {return;}bool deleteContacts = await isDeleteContacts(widget.account, widget.toChatId);if(deleteContacts){return;}//上传文件ChatBean serverChatBean;String message = "";ChatSendBean chatSendBean = ChatSendBean();chatSendBean.contentType = type;chatSendBean.messageId = messageId;chatSendBean.addTime = WnDateUtils.getCurrentTime();if(type == CommonUtils.CHAT_CONTENT_TYPE_VOICE){//语音serverChatBean = await UploadUtils.getInstance().uploadChatVoice(widget.account, widget.toChatId, mediaURL);chatSendBean.content = serverChatBean.voice??"";chatSendBean.second = mediaSecond;} else {return ;}message = jsonEncode(chatSendBean);_sendMessage(message);
}

接收语音:

String serverVoicePath = CommonUtils.BASE_URL_UPLOAD + content;
String localVoicePath = await FileUtils.getBaseFile("${DateUtil.getNowDateMs()}.mp3");
//先下载语音
await DownloadUtils.getInstance().downloadFile(serverVoicePath, localVoicePath);
chatBean.voice = serverVoicePath;
chatBean.voiceLocal = localVoicePath;
chatBean.second = second;
//通知栏提示
NotificationUtils.getInstance().showNotification(chatBean);
//插入本地数据库
ChatRepository.getInstance().insertChat(chatBean);
//刷新页面
eventBus.emit(chatBean);

Flutter高仿微信-第32篇-单聊-语音相关推荐

  1. Flutter高仿微信-第36篇-单聊-语音通话

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 目前市 ...

  2. Flutter高仿微信-第31篇-单聊-表情

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  3. Flutter高仿微信-第47篇-群聊-语音

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...

  4. Kotlin高仿微信-第11篇-单聊-语音

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

  5. Flutter高仿微信-第46篇-群聊-表情

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  6. Flutter高仿微信-第48篇-群聊-图片

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...

  7. Flutter高仿微信-第51篇-群聊-修改群名

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...

  8. Flutter高仿微信-第52篇-群聊-清空聊天记录

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...

  9. Flutter高仿微信-第55篇-群聊-合成群头像

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 /*** 处理 ...

最新文章

  1. 原生ajax XMLHTTPRequest()
  2. CSS魔法堂:更丰富的前端动效by CSS Animation
  3. mac ipmessage
  4. 大规模Web服务开发技术
  5. loadruner知识点小结
  6. JDK11使用HSDB
  7. 十分钟教你学会vi编辑器使用方法(详细版)
  8. javaweb(ssh)体育赛事网上售票系统案例
  9. ESXI安装威联通NAS系统
  10. centos6.5安装ansible和tower
  11. 盘点CSV文件在Excel中打开后乱码问题的两种处理方法
  12. 极光笔记 | 极光推送业务无中断迁移上云实践
  13. 手眼标定_全面细致的推导过程
  14. android锁屏界面快捷键,Funtouch新特性 锁屏快捷键可以自定义
  15. 两个计算机系统安装,如何一个电脑装两个系统|一个电脑装2个系统方法
  16. Javascript基础知识 1(JS)
  17. Windows10禁止自动重启和按键盘任意键自动开机
  18. 面对百亿数据,HBase为什么查询速度依然非常快?
  19. 工作了3年的JAVA程序员应该具备什么技能?
  20. keil最新版安装以及PJ

热门文章

  1. pngquant php,如何在PHP中使用pngquant
  2. Hadoop默认端口说明
  3. 微博的大V经济学,让自媒体今年赚了117亿
  4. r调取mysql中数据_怎样使用r语言读取的sql数据
  5. Java抢红包小程序
  6. One Day One Step 之全错位排序
  7. 【企业风采】云息通信获“中国声谷企业”、“优质小微企业”等多项证书
  8. BeagleboneBlack制作最新SD启动卡
  9. antdpro学习笔记(一)
  10. 表示颜色的有三种方式