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

晚上奖励自己的网站推荐学院网站建设 好处

晚上奖励自己的网站推荐,学院网站建设 好处,淘宝刷单网站怎么建设源代码,舆情监测分析系统本文目录 点击直达 Android 开发一个耳返程序程序编写1. 配置 AndroidManifast.xml2.编写耳返管理器3. 录音权限申请4. 使用注意 最后我还有一句话要说怕相思#xff0c;已相思#xff0c;轮到相思没处辞#xff0c;眉间露一丝 Android 开发一个耳返程序 耳返程序是声音录入… 本文目录 点击直达 Android 开发一个耳返程序程序编写1. 配置 AndroidManifast.xml2.编写耳返管理器3. 录音权限申请4. 使用注意 最后我还有一句话要说怕相思已相思轮到相思没处辞眉间露一丝 Android 开发一个耳返程序 耳返程序是声音录入设备实时播放的一种程序理论上实现方案是通过手机录音功能录制音频的同时播放音频这样就可以简单达到耳返的目的。 分析完毕之后通过了解Android官方API和文档决定采用AudioRecord/AudioTrack的方式实现简单的PCM编码录制和播放来实现耳返接下来我们直接进入正题 程序编写 1. 配置 AndroidManifast.xml 录音需要使用录音权限将以下代码写入AndroidManifast.xml文件中 uses-permission android:nameandroid.permission.RECORD_AUDIO /效果如下 2.编写耳返管理器 这里我们创建一个类IEMSManager.kt,用来处理音频录制和播放 object IEMSManager {//录音来源使用通话语音这样可以防止啸叫的同时拥有系统降噪private const val AUDIO_SOURCE MediaRecorder.AudioSource.VOICE_COMMUNICATION// 采样频率44100Hz是唯一目前所有Android设备都保证支持的采样频率private const val SAMPLE_RATE 44100// 音频通道使用双声道输入private const val CHANNEL_IN AudioFormat.CHANNEL_IN_STEREO// 音频通道使用双声道输出private const val CHANNEL_OUT AudioFormat.CHANNEL_OUT_STEREO// PCM 16bits每个样本所有设备保证支持private const val AUDIO_FORMAT AudioFormat.ENCODING_PCM_16BIT// 录音时音频数据写入的buffer的大小private var recordBufferSize AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_IN, AUDIO_FORMAT)// 播放时音频数据读取的buffer的大小private val trackBufferSize AudioTrack.getMinBufferSize(SAMPLE_RATE, CHANNEL_OUT, AUDIO_FORMAT);//构建描述音频属性的对象private val attributes by lazy {AudioAttributes.Builder()//设置音频流的用途属性.setUsage(AudioAttributes.USAGE_ASSISTANT)//设置音频内容属性.setContentType(AudioAttributes.CONTENT_TYPE_SPEECH).build()}//构建描述音频格式的对象private val format AudioFormat.Builder()//设置采样频率.setSampleRate(SAMPLE_RATE)//设置音频格式的编码方式.setEncoding(AUDIO_FORMAT)//设置通道掩码.setChannelMask(CHANNEL_OUT).build()//控制耳返的状态private var isRunning false//音频录制器可以录制音频裸数据PCMprivate var audioRecorder: AudioRecord? null//音频播放器支持PCM裸数据渲染private var audioTrack: AudioTrack? nullRequiresPermission(android.Manifest.permission.RECORD_AUDIO)fun start() {if (isRunning) returnisRunning true//初始化音频录制器audioRecorder AudioRecord(AUDIO_SOURCE,SAMPLE_RATE,CHANNEL_IN,AUDIO_FORMAT,recordBufferSize)//初始化音频播放器audioTrack AudioTrack(attributes,format,trackBufferSize,AudioTrack.MODE_STREAM,AudioManager.AUDIO_SESSION_ID_GENERATE)//开启线程thread {//创建字节数组存储PCM的二进制数据val data ByteArray(recordBufferSize)//开始录制audioRecorder?.startRecording()//开始播放audioTrack?.play()while (isRunning) {//录音数据是根据录制缓冲区大小试试读取的val byteSize audioRecorder?.read(data, 0, recordBufferSize) ?: 0//检查到录制数据正常if (byteSize AudioRecord.SUCCESS) {//AudioTrack实时渲染刚刚录制的部分audioTrack?.write(data, 0, byteSize)}}//释放资源audioRecorder?.stop()audioRecorder?.release()audioTrack?.stop()audioTrack?.release()audioRecorder nullaudioTrack null}}fun stop() {isRunning false} }3. 录音权限申请 在使用耳返功能前需要检查权限并且授予RECORD_AUDIO权限否则会闪退 if (ActivityCompat.checkSelfPermission(this,Manifest.permission.RECORD_AUDIO) ! PackageManager.PERMISSION_GRANTED) {requestPermissions(arrayOf(Manifest.permission.RECORD_AUDIO), 0x1)returnsetOnClickListener}4. 使用 代码已经编写完成只需要调用IEMSManager.kt使用即可听到自己发出的声音 IEMSManager.start() IEMSManager.stop()注意 因为使用通话的双通道麦克风实现了降噪所以使用时可能声音较小如果没有声音请将声音调到最大然后凑近麦克风吼两句感谢博主我会一键三连的 最后我还有一句话要说 怕相思已相思轮到相思没处辞眉间露一丝 明·俞彦《长相思·折花枝》
http://www.eeditor.cn/news/123618/

相关文章:

  • 网站建设培训 店dw网页制作软件官网
  • 济南企业网站开发国外云服务器厂商
  • 重庆网站营销公司找外贸工作哪个网站好
  • 西安网站建设软件自己建一个网站怎么赚钱
  • 抄袭网站违法深圳在哪些网站找什么好处
  • 重庆信息网招聘seo型网站
  • 有没有做微信的动态图网站莞城网站制作
  • 江宁网站建设哪家好苏州工业园区一站式服务中心
  • 做内贸哪个网站好正规网站建设定制
  • 自己电脑上做的网站 怎么让别人看有没有免费做网站的
  • 建设营销型网站不足之处建设网站平台的章程
  • 珠海做网站最好的公司先申请域名后做网站
  • 在线商城网站制作888集团浏览器app
  • 网站后台管理员密码产品外包装设计
  • 做网站个人php网站开发app接口
  • 网站某个链接失效电商网站定制开发
  • 景区网站建设 现状wordpress简历模板
  • 网站推广的方式手段有哪些公司建立网站流程
  • 门户网站是啥意思iis7.5发布网站教程
  • 网站权限怎么弄网页制作师就业班
  • 网站SEO做点提升流量象客九九9九九9视频在线观看
  • 深圳 响应式网站建设广州网站建设q.479185700強
  • 深圳住房城乡建设局网站论文 网站建设可行性
  • 石大网页设计与网站建设客观题wordpress 图片自动加水印
  • 网站建设公司哪家好速找盛世传媒定制网站制作公司有哪些
  • 网站后台如何添加视频网站数据库到期
  • 网站收录有什么好处做系统的图标下载网站
  • 重庆医疗网站建设网络规划与设计报告
  • 手机网站怎么改成电脑版网页字体导入wordpress
  • 山东建设银行官网网站响应式网站方案