iOS上传语音到服务器

2023-05-16

iOS上传语音到服务器。 
这里介绍用AFN上传语音文件到服务端。 

如果不是NSData就要想办法把语音文件转化为NSData,然后才能上传服务器。

首先我们拿到语音文件对应的NSData对象 NSData *voiceData = [message valueForKey:@"wavAudioData"]; //kHostURL为开发者公司的APP对应的主域名,比如http://xxx.yyy.cn AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:kHostURL]]; manager.requestSerializer.timeoutInterval = 100; NSMutableDictionary *paras = [[NSMutableDictionary alloc]init]; [paras setValue:self.msgType forKey:@"msgType"]; //以file的形式上传,这里的key很重要"accessory",这个是和服务器端对应的,千万不能乱写,一定要看接口文档,不然会上传失败 [paras setValue:(__bridge id)((__bridge FILE *)(voiceData)) forKey:@"accessory"]; [paras setValue:[BLLUser getPushToken] forKey:@"senderPushToken"]; [paras setValue:self.receiverPushToken forKey:@"receiverPushToken"]; [paras setObject:[Base getKey] forKey:@"ukey"]; AFHTTPRequestOperation * operation = [manager POST:kBLLUrl_Chat_Chat parameters:paras constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyyMMddHHmmss"; NSString *str = [formatter stringFromDate:[NSDate date]]; //fileName这里取当前时间戳 //accessory还是一样和服务端对应,具体看你自己的接口文档 //mimeType选择@"amr/mp3/wmr",意思是告诉服务端,我上传的文件类型是支持三种格式amr、mp3和wmr,这里需要注意 //这里我是上传了一个amr格式的语音文件,那么如果你的语音文件为其它格式,一定要和服务端对应上,比如服务端让你上传wav格式的语音,那么你拿到的是amr,怎么办?讲个笑话,有人直接改后缀,服务端不是让我上传wav的嘛,直接改.wav不就可以了嘛!真的有人这样想这样做了。那么这里告诉你,你是男的,穿了女人的衣服,你仍然是男的。即使割掉丁丁也不是女的,最多算是不男不女。解决方法就是找第三方库,把你的amr语音转换为wav,然后转为NSData再上传就可以了。 NSString *fileName = [NSString stringWithFormat:@"%@.amr", str]; [formData appendPartWithFileData:voiceData name:@"accessory" fileName:fileName mimeType:@"amr/mp3/wmr"]; } success:^(AFHTTPRequestOperation *operation, NSData * responseObject) { NSLog(@"回调成功!"); NSError * error; NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error]; //json解析得到存储服务器返回的字典 NSLog(@"状态==%@",dic[@"msg"]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { //连接服务器失败 NSLog(@"发送失败"); }]; operation.responseSerializer = [AFHTTPResponseSerializer serializer]; [operation start];

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS上传语音到服务器 的相关文章

  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • 将 C 转换为 Swift:向 UITextField 添加放大镜图标

    如何在左侧添加一个放大镜图标UITextField 我找到了类似问题的答案here https stackoverflow com questions 11811705 where can i get the magnifying glas
  • 如何使用 iOS 可达性

    我正在开发一个使用网络的 iPhone 应用程序 iPhone 通过 HTTP 请求与我的服务器通信 并且应该可以在 WiFi 和 3G 上运行 我目前使用NSURLConnection initWithRequest向我的服务器发送异步请
  • UILocalNotification 在后台 10 分钟后不提示

    In didFinishLaunchingWithOptions调用函数的定时器循环httpRequest每 1 分钟间隔一次 BOOL application UIApplication application didFinishLaun
  • 如何在 Swift 中使用indexesOfObjectsPassingTest:

    IndexOfObjectsPassingTest 的声明在 Swift 中看起来像这样 func indexesOfObjectsPassingTest predicate AnyObject Int CMutablePointer
  • Admob 广告无法快速显示

    您好 我正在尝试将 admob 广告添加到已使用 swift 上传到应用商店的应用程序中 我在 admob 中制作了一个应用程序并复制了 appid 和广告 id 并显示了各自的横幅广告和插页式广告 这里的问题是当我写这行时 request
  • 无法从 iOS 中的框架访问 .nib(XIB) 文件

    我已经从现有的代码库中创建了一个框架 并尝试在新的代码库中使用它 这很好用 但是当我尝试访问属于我的框架包的一部分的 nib 文件时 我的应用程序崩溃了 这是我用来访问视图控制器 XIB 文件的代码 testViewController c
  • 使用 NSString 进行 UTF8 解码

    我是 Objective C 新手 尝试使用以下示例将格式错误的 UTF8 编码 NSString 转换为格式良好的字符串苹果文档 http developer apple com library mac documentation Coc
  • iOS - 如何在 swift 中使用 `NSMutableString`

    我已经看过这段 Objective C 代码 但我很难在 swift 中做同样的事情 NSMutableAttributedString res self richTextEditor attributedText mutableCopy
  • 如何在iOS中处理1到3个手指的滑动手势

    我使用以下代码来处理代码中的 1 根手指滑动 UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget self action selector
  • Swift SpriteKit edgeLoopF​​romRect 问题

    下面的代码可以识别底部和顶部边缘场景和球按预期弹开 但是 那左边缘和右边缘现场的情况一直被破坏 如果施加足够的力 球会离开屏幕 然后最终返回 就好像场景的边缘超出了 iPhone 模拟器窗口的边缘 import SpriteKit clas
  • React-native-vision-camera无法访问后面的普通摄像头

    我正在尝试在 iPhone 11 Pro 上使用 普通 相机 我使用反应本机视觉相机 当我运行这段代码时 const devices useCameraDevices const deviceBack devices back consol
  • 从按钮执行 Segue 时应用程序冻结

    我的故事板中有一个按钮 它呈现一个带有模式序列的视图控制器 每次按下此按钮时 应用程序都会冻结 没有崩溃 也没有错误消息 prepareForSegue被调用 所有应该存在的视图控制器都在代码中prepareForSegue 但它们不会出现
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • iOS 7 上 Safari 浏览器的用户代理

    我只想在带有 Safari 浏览器的 iPhone 和 iPod 中打开我的网站 对于 Chrome Dolphin 等任何其他浏览器 它不应该打开 但目前我从几乎所有设备获得相同的用户代理 对于Safari User Agent Stri
  • Objective-C 中发送给对象的消息可以被监听或者打印出来吗? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 中拦截方法调用 https stackoverflow com questions 1618474 intercept method call in objective c 如
  • 使用 MapKit 的地形和卫星视图

    我是 Mapkit View 的新手 当我给出没有目的地的纬度和经度时 我想显示 MapKit中是否可以通过地形 卫星视图来显示地图 有教程链接吗 我看过一些访问 Google 地图 API html 文件 的示例 有必要吗 或者您可以通过
  • iOS:如何知道 reloadData() 已完成其任务?

    我想滚动到给定索引 self boldRowPath 但是当我调试时scrollToRow之前执行reloadData 如何知道reloadData已完成 func getAllTimeEvent self arrAllTimeEvent
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S

随机推荐

  • LUKS 磁盘加密

    前言LUKS 的使用步骤开机自动识别加密磁盘 根分区自动识别 忘记密码怎么办 xff1f 前言 LUKS xff08 Linux Unified Key Setup xff09 是 Linux 硬盘加密的标准 通过提供标准的磁盘格式 xff
  • linux 分区和文件系统结构

    前言磁盘分区 1 分区结构 MBR 分区GPT 分区 文件系统 1 文件系统结构2 inode 如何找到文件 3 File descriptor 彩蛋 xff1a df 是怎么计算出来的 前言 本篇文章总结一下磁盘分区以及文件系统的结构 x
  • Linux 内存分析——进程和物理结构角度

    文章目录 前言进程如何使用内存进程地址空间虚拟内存在内核中的实现系统上查看进程内存进程用来申请内存的函数共享内存实现进程间通讯64位系统地址空间 从物理内存角度看内存内存页及虚拟内存到物理内存的映射物理内存的 ZONE伙伴系统buddy 和
  • Ubuntu18.04 禁用自动挂起,禁止自动休眠

    戴尔的7920工作站新安装了ubuntu18 04LTS xff0c 结果登录远程桌面差不多半个小时之后就断开连接了 xff0c 查看发现机器自动挂起了 修改了power设置中中blank screen 为never xff0c 保存之后过
  • 手把手教你,搭建内网穿透服务

    我的 GitHub 仓库 xff1a 手把手教你搭建内网穿透服务 xff0c 基于 lanproxy 穿透服务 xff0c 为你深度定制了开箱即用的服务端和客户端 Docker 镜像 在很多场景下内网穿透都是我们常常遇到的需求 xff0c
  • 支持alpha通道的视频编码格式以及容器类型汇总

    支持alpha通道的视频编码格式以及容器类型汇总 1 png图像序列 xff0c mov mkv等格式 2 qtrle编码 xff0c mov格式 3 Apple ProRes 4444 rgba 4个通道 xff0c 其容器格式尚未了解
  • word如何给论文加引用文献

    给论文加引用文献其实差不多就是加了个链接 xff0c 通过点击链接跳转到文末最后展示引用文献额作者 xff0c 论文名等等信息 xff0c 给论文加引用文献只要有一下几步 xff1a 一 设置参考文献标号字体格式 对于论文中的文献 xff0
  • unix中c语言典型的存储空间布局

    此文转载于 xff1a https www cnblogs com LUO77 p 5853534 html 一个程序本质上都是由 BSS 段 data段 text段三个组成的 可以看到一个可执行程序在存储 xff08 没有调入内存 xff
  • ffmpeg命令分析-b:v

    本系列 以 ffmpeg4 2 源码为准 xff0c 下载地址 xff1a 链接 xff1a 百度网盘 提取码 xff1a g3k8 本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的 a mp4下载链接 xff1a 百度网盘
  • 魔百和M401A刷入Armbian系统EMMC

    魔百和M401A刷入Armbian系统 准备工具 span class token number 1 span 电视盒子 U盘 键盘 显示器 HDMI线 span class token number 2 span armbian系统镜像包
  • SonarQube9社区版环境配置

    由于种种原因 xff0c 需要配置SonarQuber9社区版配置中心 xff0c 记录下配置搭建过程 本次部署环境 win10 43 SonatQube9 9 43 opjdk17 1 软件下载 SonarQube9 9社区版 https
  • 虚拟内存以及进程的虚拟内存分布(第六章)

    在早期的计算机中 xff0c 程序都是直接运行在物理内存上的 xff0c 意思是运行时访问的地址都是物理地址 xff0c 而这要求程序使用的内存空间不超过物理内存的大小 在现代计算机操作系统中 xff0c 为了提高CPU的利用率计算机同时运
  • PyCharm导入模块报No model named

    PyCharm导入模块报No model named 引言 在PyCharm中同目录下import其他模块 xff0c 出现No model named 的报错 xff0c 但实际可以运行的情况 这很可能是因为PyCharm并没有将当前文件
  • 推荐一款程序猿必备IDE软件 notepad++,很好用

    编程软件对于程序猿来说不仅仅是辅助 xff0c 更是效率 对于高手 大神级别的来说 xff0c 记事本就行 xff0c 可对于刚入门的 半吊子的程序猿来说 xff0c 还是软件爽 xff0c 上图为notepad 43 43 截图 这个软件
  • IOS文件管理

    IOS文件管理 1 沙盒机制 xff1a IOS应用程序只能对自己创建的文件系统读取文件 xff0c 这个独立 封闭 安全的空间就叫做沙盒 它可以存储程序包文件 xff08 可执行文件 xff09 图片 音频 视频 plist文件 sqli
  • 工作日记NO.2

    1 安装局域网内网通 xff1b 2 安装VS2017 43 AutoCAD 43 ObjectARX VS2017 43 AutoCAD2020配置ObjectARX VS2017 43 AutoCAD2020配置ObjectARX dg
  • objectARX CString未定义标识符与常用字符类型转换

    1 CString未定义标识符 CString并非是标准类型 xff0c 为MFC中定义的类型 xff1b 情况1 xff1a 创建了一个C 43 43 的动态链接库 xff0c 属性上已经选中了dll中支持MFC xff0c 仍报错CSt
  • Windows远程桌面访问Debian系统

    前几天闲着没事 xff0c 把笔记本系统由Windows10换成了Debian xff0c 下载Debian ISO镜像文件总共花了12 4G空间 xff08 debian 10 3 0 amd64 DVD 1 iso xff08 3 7G
  • Failed to build mpi4py ERROR: Could not build wheels for mpi4py, which is required to install pyproj

    最近在配置项目环境的时候 xff0c 使用pip install r requirements txt时总是报错 Building wheel for mpi4py pyproject toml error error subprocess
  • iOS上传语音到服务器

    iOS上传语音到服务器 这里介绍用AFN上传语音文件到服务端 如果不是NSData就要想办法把语音文件转化为NSData xff0c 然后才能上传服务器 首先我们拿到语音文件对应的NSData对象 NSData voiceData 61 m