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

MediaRecorder媒体录音机

权限:

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
RECORD_AUDIO  录音
WRITE_EXTERNAL_STORAGE  不加无法写入
READ_EXTERNAL_STORAGE  不加录不全 

代码:

MediaRecorder mediaRecorder=new MediaRecorder();  //创建MediaRecorder
mediaRecorder.reset();  //重置MediaRecorder参数
mediaRecorder.setAudioSource( MediaRecorder.AudioSource.MIC );  //设置音频来源,MediaRecorder.AudioSource.MIC表示麦克风 
mediaRecorder.setOutputFile( file );  //设置输出文件
mediaRecorder.setOutputFormat( MediaRecorder.OutputFormat.RAW_AMR );  //设置输出格式,MediaRecorder.OutputFormat.RAW_AMR表示 .arm文件格式
mediaRecorder.setAudioEncoder( MediaRecorder.AudioEncoder.AMR_NB );  //设置音频编码(方式),MediaRecorder.AudioEncoder.AMR_NB表示 .arm编码器
mediaRecorder.prepare();  //媒体录音机进入准备状态mediaRecorder.start();  //开始录音
mediaRecorder.pause();  //暂停
mediaRecorder.resume();  //继续
mediaRecorder.stop();  //中止录音,此时生成文件完成
mediaRecorder.release();  //释放资源,防止占用内存

注意:

1. 要在各项参数设置前重置MediaRecorder(参数)  .reset()

2. 不设置音频来源会导致生成的文件无音轨  .setAudioSource()

参数使用MediaRecorder.AudioSource.MIC表示麦克风输入

3. 不设置输出文件将无法生成文件  .setOutputFile( ~ )

4. 设置输出格式用于设置文件类型  .setOutputFormat( ~ )

参数使用MediaRecorder.OutputFormat.RAW_ARM表示 .arm文件格式     

5. 需要设置音频编码(方式) .setAudioEncoder( ~ )

参数使用MediaRecorder.AudioEncoder.ARM_NB表示 .arm编码器

6. 要在各项参数设置后使媒体录音机进入准备状态 .prepare()

7. MediaRecorder的使用

开始录音.start()   

暂停.pause()     

继续.resume()   

中止录音.stop()此时文件生成完成     

释放资源.release()防止占用资源

8. 权限三项都要

RECORD_AUDIO 录音
WRITE_EXTERNAL_STORAGE 不加无法写入文件
READ_EXTERNAL_STORAGE 不加录音只会有一小段(几秒),因录音机是不断在之前文件添加新音频并覆盖,无读取权限则只会进行覆盖

常见问题:

 1.  Android媒体录音机MediaRecorder录制出的文件只有几秒甚至几毫秒,原因可能是未添加文件读取权限(READ_EXTERNAL_STORAGE)。录音机录制时,每几毫秒会录制一次,新录制到的音频会添加至之前的音频文件末端,然后覆盖旧音频文件;如果没有文件读取权限,每次录制到的新音频只会覆盖旧音频文件回车。

相关文章:

MediaRecorder媒体录音机

权限&#xff1a; <uses-permission android:name"android.permission.RECORD_AUDIO"/> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.READ_EXTE…...

短视频如何批量添加水印

在当今的数字时代&#xff0c;短视频已经成为一种非常流行的内容形式。无论是社交媒体还是视频分享网站&#xff0c;短视频都已经成为了一种非常有吸引力的内容。然而&#xff0c;对于一些拥有大量视频内容的创作者来说&#xff0c;添加水印可能是一项繁琐的任务。本文将介绍如…...

RT-Thread MQTT(学习)

MQTT背景应用 MQTT是机器对机器&#xff08;M2M&#xff09;/物联网&#xff08;IoT&#xff09;连接协议&#xff0c;英文全名为“Message Queuing Telemetry Transport”&#xff0c;“消息队列遥测传输”协议。它是专为受限设备和低带宽、高延迟或不可靠的网络而设计的&…...

Vue_Bug VUE-ELEMENT-ADMIN默认是英文模式

Bug描述&#xff1a; VUE-ADMIN-TEMPLATE-MASTER VUE-ELEMENT-ADMIN-MASTER 两个项目直接从GitHub上拉取下来 默认是英文模式 其他信息&#xff1a; 这两个项目默认支持中文语言包&#xff0c;无需额外引入&#xff0c;只需删除英文语言包依赖 //import enLang from element-…...

Spark中的Driver、Executor、Stage、TaskSet、DAGScheduler等介绍

工作流程&#xff1a; Driver 创建 SparkSession 并将应用程序转化为执行计划&#xff0c;将作业划分为多个 Stage&#xff0c;并创建相应的 TaskSet。Driver 将 TaskSet 发送给 TaskScheduler 进行调度和执行。TaskScheduler 根据资源情况将任务分发给可用的 Executor 进程执…...

docker的资源限制参数设置错误,导致的clickhouse性能瓶颈

使用场景 我们使用docker作为服务的虚拟化工具&#xff0c;服务都部署在docker里我们使用docker-compose管理所有docker服务的配置文件针对某些服务&#xff0c;我们要限制这个docker占用的资源数量&#xff0c;例如&#xff0c;cpu和内存在进行配置时&#xff0c;网上搜了一些…...

Vue路由守卫有哪些,怎么设置,有哪些使用场景?

Vue 路由守卫是在 Vue Router 中提供的一种功能&#xff0c;它允许您在导航到某个路由前、路由变化时或导航离开某个路由时执行代码。Vue 路由守卫提供了以下几种类型&#xff1a; 1.全局前置守卫 router.beforeEach 在进入路由前执行的钩子函数&#xff0c;它会接收三个参数&a…...

云原生网关可观测性综合实践

作者&#xff1a;钰诚 可观测性 可观测性&#xff08;Observability&#xff09;是指系统、应用程序或服务的运行状态、性能和行为能够被有效地监测、理解和调试的能力。 随着系统架构从单体架构到集群架构再到微服务架构的演进&#xff0c;业务越来越庞大&#xff0c;也越来…...

vue-element-admin—登录页面添加自定义背景

一、效果图 初始效果&#xff1a; 更改背景后效果&#xff1a; 二、操作步骤 1、准备图片 2、更改代码 打开下面路径的 index.vue 文件&#xff1a; vue-element-admin-master\src\views\login\index.vue 也就是登录页面。 对 .login-container 样式代码块内代码做如下…...

软设上午题-错题知识点一

软设上午题-错题知识点一 1、ipconfig 显示信息&#xff1b; ipconfig /all 显示详细信息 &#xff0c;可查看DHCP服务是否已启用&#xff1b; ipconfig /renew 更新所有适配器&#xff1b; ipconfig /release 释放所有匹配的连接。 2、耦合性也叫块间联系。指软件系统结构中各…...

微信小程序(小程序入门)

一&#xff0c;介绍 1、什么是小程序 小程序是一种轻量级的应用程序&#xff0c;可以在移动设备上运行&#xff0c;不需要用户下载和安装。它们通常由企业或开发者开发&#xff0c;用于提供特定功能或服务。 微信小程序&#xff08;wei xin xiao cheng xu&#xff09;&#xf…...

虹科分享 | 想买车无忧?AR为您带来全新体验!

新能源汽车的蓬勃发展&#xff0c;推动着汽车行业加速进行数字化变革。据数据显示&#xff0c;全球新能源汽车销售额持续上升&#xff0c;预计到2025年&#xff0c;新能源汽车市场规模将达到约 4200亿美元&#xff0c;年复合增长率超过 30%。这表明消费者对清洁能源出行的需求不…...

easyUI重新渲染

问题 使用Easyui 时&#xff0c;动态后添加的元素样式无法生效。 解决颁发 全页面重新渲染 $.parser.parse();单一元素重新渲染 var obj $("#div1").append("<input classeasyui-textbox typetext>"); $.parser.parse(obj);...

html和css基础练习

vscode快捷键 alt b 在浏览器中打开 alt shift b 在其他浏览器打开 ctrl / 注释 ctrl y 快捷键删除 参考文章 https://www.bilibili.com/video/BV1m84y1w7Tb 基础html标签 img&#xff1a;图像&#xff0c;title&#xff1a;头部文字&#xff0c;body&#xff1a;主…...

Linux信号 signal()编程

在Linux的进程间通信中可以用signal&#xff08;&#xff09;函数进行信号与信息传递。 1.信号 信号的名字和编号&#xff1a; 每个信号都有一个名字和编号&#xff0c;这些名字都以“SIG”开头&#xff0c;例如“SIGIO ”、“SIGCHLD”等等。 信号定义在signal.h头文件中&am…...

【LeetCode】16.最接近的三数之和

1 问题 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1&#xff1a; 输入&#xff1a;nums [-1,2,1,-4], target 1 输出&…...

嵌入式开发学习之STM32F407点亮LED及J-Link下载(二)

嵌入式开发学习之STM32F407点亮LED及J-Link下载&#xff08;二&#xff09; 开发涉及工具控制端口配置端口的设定与确认端口配置方法实现点亮LED程序下载与仿真 有工程实例&#xff0c;链接在最底部。 开发涉及工具 开发环境&#xff08;IDE&#xff09;&#xff1a;IAR-ARM8…...

智能呼叫中心系统的未来发展趋势:为企业开启全新服务模式

随着人工智能技术的不断发展&#xff0c;智能呼叫中心系统已经成为现代企业服务的重要组成部分。随着客户需求的不断升级&#xff0c;智能呼叫中心系统的未来发展趋势也受到了广泛关注。以下是一些关于未来发展趋势的观点和建议。 1、大数据和人工智能技术 未来的系统将更多地…...

UE5中实现沿样条线创建网格体2-SplineMesh版本

我在之前的一篇文章中写过沿样条线创建网格体的方法&#xff1a; https://blog.csdn.net/grayrail/article/details/130453733 但该方法没有网格变形操作&#xff0c;就会导致每一段网格对象是无法连接的&#xff1a; 后来发现了SplineMesh方法可以比较好的解决这个问题&…...

实现Element Select选择器滚动加载

<template><el-selectpopper-class"more-tag-data"v-model"tagId"filterableplaceholder"请选择"focus"focusTag"><el-optionv-for"(item, index) in taskTagLists":key"index":label"item.n…...

七牛云CDN加速+HTTPS配置全攻略(阿里云域名解析实战)

七牛云CDN加速HTTPS配置全攻略&#xff08;阿里云域名解析实战&#xff09; 当你的网站访问速度开始影响用户体验&#xff0c;或是浏览器频繁弹出"不安全"警告时&#xff0c;CDN加速和HTTPS配置就成了刚需。七牛云作为国内领先的云服务商&#xff0c;提供了从存储到…...

终极指南:如何测试Binwalk自定义提取器:从单元测试到集成测试的完整方案

终极指南&#xff1a;如何测试Binwalk自定义提取器&#xff1a;从单元测试到集成测试的完整方案 【免费下载链接】binwalk Firmware Analysis Tool 项目地址: https://gitcode.com/gh_mirrors/bi/binwalk Binwalk 是一款强大的固件分析工具&#xff0c;专门用于识别和提…...

告别鼠标拖拽:用Mermaid重新定义技术图表创作流程

告别鼠标拖拽&#xff1a;用Mermaid重新定义技术图表创作流程 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器&#xff0c;支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图的…...

【毕业设计】SpringBoot+Vue+MySQL 兴顺物流管理系统平台源码+数据库+论文+部署文档

摘要 随着电子商务和全球贸易的快速发展&#xff0c;物流行业在现代经济体系中的重要性日益凸显。高效、智能的物流管理系统能够显著提升企业的运营效率&#xff0c;降低管理成本&#xff0c;并优化客户体验。然而&#xff0c;传统的物流管理方式仍存在信息孤岛、数据冗余、流程…...

Pixel Dream Workshop详细步骤:日志系统集成与渲染异常诊断方法

Pixel Dream Workshop详细步骤&#xff1a;日志系统集成与渲染异常诊断方法 1. 像素幻梦创意工坊简介 Pixel Dream Workshop&#xff08;像素幻梦创意工坊&#xff09;是一款基于FLUX.1-dev扩散模型的下一代像素艺术生成工具。它采用明亮的16-bit像素风格界面设计&#xff0c…...

手把手教你:FinalShell控制台背景图片自定义替换(无需VIP权限)

1. 为什么需要自定义FinalShell控制台背景&#xff1f; 作为一个每天要和命令行打交道的开发者&#xff0c;我深知一个舒适的开发环境有多重要。FinalShell作为国产SSH客户端的佼佼者&#xff0c;默认的深色背景虽然专业&#xff0c;但看久了难免单调。你可能不知道&#xff0…...

Tessent Shell双Pass插入策略深度解读:为什么MemoryBIST要先于EDT/OCC插入?

Tessent Shell双Pass插入策略&#xff1a;MemoryBIST优先于EDT/OCC的技术本质解析 在芯片测试领域&#xff0c;Tessent Shell的双Pass插入流程&#xff08;Two-Pass Insertion Process&#xff09;是一个被广泛采用却鲜少深入探讨的核心方法论。当工程师首次接触"先Memory…...

像素幻梦创意工坊:5分钟零基础搭建你的AI像素艺术生成器

像素幻梦创意工坊&#xff1a;5分钟零基础搭建你的AI像素艺术生成器 1. 前言&#xff1a;开启你的像素艺术之旅 还记得小时候玩过的8-bit游戏吗&#xff1f;那些由一个个小方块组成的奇幻世界&#xff0c;如今可以通过AI技术轻松重现。Pixel Dream Workshop&#xff08;像素幻…...

ChatGLM-6B生产级部署:Supervisor配置文件结构与自定义参数说明

ChatGLM-6B生产级部署&#xff1a;Supervisor配置文件结构与自定义参数说明 1. 引言 在生产环境中部署AI服务时&#xff0c;稳定性是首要考虑的因素。ChatGLM-6B作为一款优秀的开源对话模型&#xff0c;如何确保其7x24小时稳定运行成为了关键问题。本镜像采用了Supervisor进程…...

2023-2026热门网页游戏盘点|传奇页游稳居顶流,5大类型闭眼冲

近几年&#xff0c;电脑网页游戏凭借“无需下载、点开即玩”的便捷优势&#xff0c;依旧深受玩家喜爱&#xff0c;适配上班族、学生党等各类人群的碎片化娱乐需求。从复古传奇到策略竞技&#xff0c;从休闲解压到沉浸式MMO&#xff0c;各类热门页游百花齐放。今天&#xff0c;就…...