首页 文章 精选 留言 我的

精选列表

搜索[需求管理],共10000篇文章
优秀的个人博客,低调大师

三大运营商将发力物联网 行业需求迎快速扩容

在今日举行的2016年中国互联网大会上,三大运营商发言人都认为,物联网和家庭市场IPTV将是运营商转型发力的重中之重,物与物的联接是一个更大的市场,比互联网的空间更大,是现在互联网市场空间的千倍万倍。 机构认为,16日NB-IoT标准获得国际组织3GPP通过,国内NB-IoT的行业标准2016年底发布,2017年初可规模商用。未来十年预计将产生百亿量级M2M连接设备数、百亿美元量级芯片市尝千亿美元量级物联网应用市常平台型企业、重点行业应用公司,有望率先受益。 综合券商研报,远望谷的RFID技术产品、东土科技的工业以太网交换机,将受益物联网产业发展。本文转自d1net(转载)

优秀的个人博客,低调大师

iOS录音和播放 上传和下载 动画 满足60秒内的需求

录音功能研究了一周 总结的简单的录音和播放 满足录音60秒以内的上传和下载 用的AVFoundation框架中的 AVAudioRecorder 进行录音 用 AVAudioPlayer进行的播放 录音的格式选用的是AAC的,iOS , 安卓可以播放,服务器需要转成MP3播放 录音代码 AVAudioSession *session = [AVAudioSession sharedInstance];//控制整个系统 NSError *sessionError; [session setCategory:AVAudioSessionCategoryRecord error:&sessionError];//播放的时候用的AVAudioSessionCategoryPlayback if (sessionError) { NSLog(@"设置AVAudioSession大管家的时候报的错_____%@",sessionError.description); }//判断后台有没有播放 if (session == nil) { NSLog(@"AVAudioSession后台有播放:%@", [sessionError description]); } else { [session setActive:YES error:nil]; } [self.recorder record]; 准备录音配置 - (AVAudioRecorder *)recorder { if (_recorder == nil) { NSMutableDictionary* recordSettingAAC = [[NSMutableDictionary alloc] init]; [recordSettingAAC setValue :[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];//AAC 格式的压缩比和品质都是实用的,文件小音质高 AAC(Advanced Audio Coding),中文名:高级音频编码,出现于1997年,基于MPEG-2的音频编码技术。由Fraunhofer IIS、杜比实验室、AT&T、Sony等公司共同开发,目的是取代MP3格式。2000年,MPEG-4标准出现后,AAC重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的MPEG-2 AAC又称为MPEG-4 AAC。http://www.mamicode.com/info-detail-986202.html [recordSettingAAC setValue:[NSNumber numberWithFloat:32000.0] forKey:AVSampleRateKey];//设置录音采样率(Hz) 如:AVSampleRateKey==8000/44100/96000(影响音频的质量), 此处采样频率设置成8000就够用,咱们打电话的采样平率就是8000 设置成32000 是因为后台转MP3时的限制 [recordSettingAAC setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];//录音通道数 1 或 2 ,要转换成mp3格式必须为双通道 [recordSettingAAC setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey]; // [recordSettingAAC setValue:[NSNumber numberWithInt:16] forKey:AVEncoderBitRateKey];//ios7 可以 ios9 以上设置这句话会闪退 [recordSettingAAC setObject:@(8) forKey:AVLinearPCMBitDepthKey]; //线性采样位数 8、16、24、32 [recordSettingAAC setObject:@(YES) forKey:AVLinearPCMIsFloatKey]; //是否使用浮点数采样 NSError *error; _recorder = [[AVAudioRecorder alloc] initWithURL:self.urlRecordFile settings:recordSettingAAC error:&error]; if (error || self.recorder == nil) { NSLog(@"录音创建时候的错误___%@",error.description); } _recorder.delegate = self; _recorder.meteringEnabled = YES; [_recorder prepareToRecord]; } return _recorder; } 我将录音文件 存在 tem 临时文件 - (NSURL *)urlRecordFile { if (_urlRecordFile == nil) { _urlRecordFile = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:@TmpFile.aac"]];//注意后缀 一定要加上mac 否则上传给服务器他们不能判断文件类型导致文件播放失败 } return _urlRecordFile; } 录音成功后上传给服务器: AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; manager.requestSerializer = [AFHTTPRequestSerializer serializer]; manager.requestSerializer.timeoutInterval = 10; //上传文件流 [manager POST:urlString parameters:dictionary constructingBodyWithBlock:^(idformData) { [formData appendPartWithFileData:dataVoice name:@"file" fileName:@"text.aac" mimeType:@"audio/mpeg3"]; //NSData *dataVoice = [NSData dataWithContentsOfURL: self.urlRecordFile]]; } success:^(NSURLSessionDataTask *task, id responseObject) { NSError * error = nil; NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:&error]; if (!error) { } else { } } failure:^(NSURLSessionDataTask *task, NSError *error) { }]; 下载: NSData *dataAudio = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 播放: AVAudioSession *session = [AVAudioSession sharedInstance];//控制整个系统 NSError *sessionError; [session setCategory:AVAudioSessionCategoryPlayback error:&sessionError]; NSError *playError; //NSData *data = [NSData dataWithContentsOfURL:self.urlRecordFile];本地的数据也可以进行播放 self.player = [[AVAudioPlayer alloc] initWithData:dataAudio error:&playError]; self.player.delegate = self; //当播放录音为空, 打印错误信息 if (self.player == nil) { NSLog(@"播放器的问题: %@", [playError description]); } [self.player play]; 下面说说录音文件的大小 [recordSettingAAC setValue:[NSNumber numberWithFloat:16000.0] forKey:AVSampleRateKey];采样率是16000 苹果4s 60秒 369kb 性能好的手机相应的录音文件会大点 [recordSettingAAC setValue:[NSNumber numberWithFloat:8000.0] forKey:AVSampleRateKey];采样率是8000 的4s 60秒 250kb 采样率越大对应的录音的文件就越大,因为采样率大 就意味着采样的频率越高,采样的录音更加接近原声。32000的采样率 生成的录音文件大概是800kb 左右 类似QQ录音那样根据音量大小展示的相应的动画的代码如下: 录音的时候开启定时器: _timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(updateImage) userInfo:nil repeats:YES]; [_timer fire]; - (void)updateImage { [self.recorder updateMeters]; double lowPassResults = pow(10, (0.05 * [self.recorder peakPowerForChannel:0])); float result = 10 * (float)lowPassResults; NSLog(@"音量%f", result); int no = 1; if (result > 0 && result <= 1.5) { no = 1; } else if (result > 1.5 && result <= 2.5) { no = 2; } else if (result > 2.5 && result <= 3.5) { no = 3; } else if (result > 3.5 && result <= 5.0) { no = 4; } else if (result > 5.0 && result <= 8) { no = 5; } else if (result > 8 ) { no = 6; } } //根据音量的大小做相应的帧动画 self.imaViewLeft.animationDuration = 0.5;//和取声音的频率一致 self.imaViewLeft.animationImages = [self arrayImageAnimationLeftWithNum:num];//这句话是指给imageview添加动画的图片 [self.imaViewLeft startAnimating]; //图片数组 - (NSMutableArray *)arrayImageAnimationRightWithNum:(int)num { _arrayImageAnimation = [NSMutableArray arrayWithCapacity:0]; for (int i = 6; i > 0; i--) { NSString *str = [NSString stringWithFormat:@"animation_%d_%d",num,i]; UIImage *image = [UIImage imageNamed:str]; [_arrayImageAnimation addObject:image]; } return _arrayImageAnimation; }

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册