Android开发 如何实现高质量的录音
在手机app的开发中 , 每次APP应用的设计都是为了开发多媒体 , 这会让很多程序员很头疼 , 项目的开发进度会变慢 , 项目的难度会增加不少 , 对APP的考验也会加大 。Android中的多媒体开发包括音频播放、音频录制、视频播放、视频录制等 。虽然AndroidSDK中提供了一些基本的开发API类 , 比如音频录制提供了两种方式:音频录制和MediaRecorder录制 。相比MediaRecorder , AudioRecord类更接近底层 , 可供我们封装的方法更少 。不过实现一个AudioRecord的录音程序也是很简单的 。1.AudioRecord实现录音:packagecom. hb56 . myandroidil;导入Java. io. bufferedinputstream;导入Java. io. bufferedoutputstream;导入Java. io. datainputstream;导入Java. io. dataoutputstream;导入Java. io. file;导入Java. io. fileinputstream;导入Java. io. fileoutputstream;导入Java. io. ioexception;导入Android. app. activity;导入Android. content. contentvalues;导入Android. content. intent;导入Android. hardware. camera. autofocuscallback;导入Android. media. audioformat;导入Android. media. audiomanager;导入Android. media. audiorecord;导入Android. media. audiotrack;导入Android. media. mediaplayer;导入Android. media. mediarecorder;导入Android. net. uri;导入Android. OS. asynctask;导入Android. OS. bundle;导入Android. OS. environment;导入Android. provider. mediastore;导入Android. util. log;导入Android. view. view;导入Android. widget. button;导入Android. widget. textview;/* * *在这个例子中 , 我们使用AudioRecord类来完成我们的音频录制程序* AudioRecord类 , 我们可以使用三种不同的读取方法来完成录制 。*每个方法都有实用场合*首先要实例化一个AudioRecord类 , 需要传入几个参数* 1 , AudioSource:这里可以是mediarecorder. audiosource. mic* 2 , SampleRateInHz:录音频率 , 8000hz或者11025hz等 。对于不同的硬件设备 , 该值是不同的* 3 。ChannelConfig:录音通道可以录制audioformat. channel_ configuration_ mono和audioformat. channel_ configuration_ stereo* 4和AudioFormat:的编码格式 。它可以是音频格式 。编码_16BIT和8BIT , 其中16BIT的仿真优于8BIT 。但是 , 它需要消耗更多的功率和存储空间* 5 。BufferSize:录音缓冲区大小:可以通过getMinBufferSize*获得 , 这样我们就可以实例化一个AudioRecord对象* 2 。创建一个文件来保存录制的内容*与上一部分相同* 3 。打开输出流 。创建的文件*数据输出流dos=新数据输出流(新文件输出流(file)) * 4 。你现在可以开始录音了 。我们需要创建一个字节数组来存储AudioRecorder返回的音频数据 , 但是*注意我们定义的数组小于定义AudioRecord时指定的缓冲区大小* short[]buffer=newshort[buffersize/4];* startRecording();*然后循环调用AudioRecord的read方法实现读取*另外 , 使用MediaPlayer无法播放AudioRecord录制的音频 。为了播放 , 我们需要*使用AudioTrack类来实现* AudioTrack类允许我们播放原始音频数据* *首先 , 实例化一个audiotrack还需要传入几个参数* 1 。StreamType:在AudioManager中有几个常量 , 其中一个是STREAM_ MUSIC* 2.SampleRateInHz:最好使用与AudioRecord* 3相同的值 , ChannelConfig: ditto* 4 , AudioFormat: ditto* 5 ,
BufferSize:通过AudioTrack的静态方法getMinBufferSize来获取* 6、Mode:可以是AudioTrack.MODE_STREAM和MODE_STATIC , 关于这两种不同之处 , 可以查阅文档* 二、打开一个输入流 , 指向刚刚录制内容保存的文件 , 然后开始播放 , 边读取边播放** 实现时 , 音频的录制和播放分别使用两个AsyncTask来完成*//*** 利用AudioRecord类实现自己的音频录制程序* com.hb56.MyAndroidUtil.AudioRecord** @author Admin-zhangyx** create at 2014-10-16 下午2:03:13*/public class AudioRecordActivity extends Activity{private TextView stateView;private Button btnStart, btnStop, btnPlay, btnFinish;private RecordTask recorder;private PlayTask player;private File audioFile;private boolean isRecording = true, isPlaying = false; //标记private int frequence = 8000; //录制频率 , 单位hz.这里的值注意了 , 写的不好 , 可能实例化AudioRecord对象的时候 , 会出错 。我开始写成11025就不行 。这取决于硬件设备private int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;private int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.my_audio_record);stateView = (TextView) this.findViewById(R.id.view_state);stateView.setText(“准备开始”);btnStart = (Button) this.findViewById(R.id.btn_start);btnStop = (Button) this.findViewById(R.id.btn_stop);btnPlay = (Button) this.findViewById(R.id.btn_play);btnFinish = (Button) this.findViewById(R.id.btn_finish);btnFinish.setText(“停止播放”);btnStop.setEnabled(false);btnPlay.setEnabled(false);btnFinish.setEnabled(false);//在这里我们创建一个文件 , 用于保存录制内容File fpath = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + “/data/files/”);fpath.mkdirs();//创建文件夹try {//创建临时文件,注意这里的格式为.pcmaudioFile = File.createTempFile(“recording”, “.pcm”, fpath);} catch (IOException e) {//TODO Auto-generated catch blocke.printStackTrace();}}public void onClick(View v) {int id = v.getId();switch (id) {case R.id.btn_start://开始录制//这里启动录制任务recorder = new RecordTask();recorder.execute();break;case R.id.btn_stop://停止录制this.isRecording = false;//更新状态//在录制完成时设置 , 在RecordTask的onPostExecute中完成break;case R.id.btn_play:player = new PlayTask();player.execute();break;http://www.2cto.com/kf/201503/382894.html
文章插图
普通人如何才能录制出较高质量的有声读物?先要进行音准训练 , 这个很简单 , 多唱歌 唱准歌一般不会出啥问题 。空间听觉 , 这个我个人觉得没有太多的必要进行训练 , 大体来说就是混响predelay , 听出20ms、40ms、60ms、80ms有啥区别就成 , 当进行完了之后就可以进行效果器的学习了 , 这应该是最快的就好像玩游戏背技能按键一样 。大部分效果器看完一遍就可以开始练习了当然也可以找一个师傅学习一波会比较快 , 最后就是练习和实战了 。这样才能录制出较高质量的有声读物!
怎么用录音软件在电脑上录制出高清晰的声音把磁带机的耳机插孔与电脑声卡的line-in用双头音频线连接起来播放磁带电脑里则用录音机软件进行录音不过效果不怎么好以下有详细资料 , 希望能对你有帮助将磁带转录成MP3是一个简单的过程 , 也是一个复杂的过程 。说简单 , 拿一台录音机线路输出和声卡的线路输入一对 , 找个合适的软件录制再压缩就完成了;说复杂 , 就是再录制过程中有很多要注意的地方 , 如果某一步出了差错都会影响到录音质量 。虽然我转录完成了上百盘磁带 , 细细听来感觉满意的寥寥无几 。现在应朋友们的要求 , 我将自己的做法和体会写一下 , 欢迎大家批评指教 。第一部分:硬件的准备硬件包括计算机和录音机 , 以及必要的连接线(一般是一条3.5/3.5转录线) 。1.推荐选择主频在300MHZ以上的PC 。过低的主频会增加处理的难度和降低处理速度 。我想谁都不想为一首歌降噪整整一个晚上吧!2.声卡最好是独立的而不是主板整合声卡(当然某些主板整合声卡性能并不差 , 录制效果也不比分立声卡差) , 例如创新、启哼、帝盟、8738等 。其中8738最好是用公版的驱动 , 有的杂音较大 , 甚至不如板载声霸卡 。3.声卡最好不要紧紧的贴在显示卡附近 , 也不要紧紧靠着机箱的一侧 。如果你的主板有三个以上的PCI插槽(我的是5个) , 我建议将声卡装在第二个插槽上(从机箱底板算起)这样和AGP显卡间隔3个PCI槽 , 录制效果是最好的 。如果靠显卡太近了 , 而且显卡又是杂牌货 , 有可能造成丝声干扰 , 增加处理难度 。4.将除了声卡以外的网卡、猫、采集卡等暂时拿掉 。当然这些设备的影响也许没有 , 也许非常小 , 但也有可能造成的影响消除是非常麻烦的 。5.最后你应将光驱到声卡的音频线拔下来 。如果你是一位电脑高手 , 建议你作以上步骤 , 毕竟几分钟就能完成任务;如果你对电脑硬件不是很熟悉 , 那就免了吧!别再开箱了 , 否则有什么问题我可负不起这个责任啊!~我现在的设备是K7-900 , 创新SBlive。录音机有几种可以供选择:一般来说最优先选择的是录放卡座和监听卡座 , 其次是台式机 , 最后是随身听 。专业的录放卡座当然是最佳的选择 , 但是具备这个能力的朋友不多 , 在此不多讲了 , 毕竟我仅仅在二手市场见到一台 , 要价1200大元~一般的台式机 , 应该是大多数朋友应该能拥有的设备 , 像以前的燕舞、春雷、春日、LH、飞翔、歌声、美丽等品牌 。在台式机里优选轻触机芯的设备 , 就是按键行程较短的 。这类设备机芯比较耐用 , 早期产自日本(不要扁我) , 抖晃小 。判断你的机芯是否是轻触机芯很简单:拔掉电源插头 , 打开舱门后按下录音机的放音键观察 , 如果磁头能抬起到放音位置 , 不是轻触机芯 。如果磁头原地不动 , 那么就要恭喜你了 。随身听里面比较好的是进口品牌 , 从抖晃上来讲 , 要低于国产品牌 , 只是输出是耳机输出 , 噪声可能偏大 。『这不是绝对 , 我见到过松下的一种随身听 , 效果要比一般的台式机好 , 而且自己带杜比降噪 , DNR1394』 , 现在我用的设备是从二手市场花140元 , 买来的一台LH8686台式机 , 机芯采用轻触机芯 , 我拿掉了里边的所有线路 , 添加了高转换速率的磁头放大板 , 经改造成一台转录机 。如果你是一位电子发烧友 , 这方面的书籍和文章很多 , 如何改制我就不介绍了 。转录线是两个3.5mm插头的那种转录线(一般) 。在市场上花3元即可买到 , 而且音质能过得去 。要是购买不很方便 , 可以自己制造:最简单的是找两个坏的立体声耳机 , 去掉耳机头 , 留下线和插头 , 然后分别对应的联起来既可 。不要忘了分别包好 , 完成后用万用表测量一下有没有线间短路和断路 , 没有即可应用 。我也购买了一根2.5米的高级转录线(40元) , 但是经过试验效果不很明显 。所以我认为在转录线方面高要求对于磁带录制来说并不合适 。但是转录线一定要有屏蔽 。除此之外 , 一个能过得去的显示器、监听音箱和监听耳机都应该注意 。显示器开启的时候 , 可能会对某些声卡有干扰 , 导致录音中混入行频叫声 , 这是一般的解决办法是开始录音时 , 启动监听 , 乐曲开始前将显示器关闭 , 乐曲完成后再打开显示器 , 将两头的杂音DEL去即可;监听音箱和监听耳机是在录音过程中监听音量和音质 , 由于每一次放音都有很多的不确定性 , 监听就更为重要了 。我认为监听耳机比较实用 , 价格也不高 , 几十元、一百多元的都能满足要求 。最好是头戴式 , 这样反应较为客观 , 而且不受外界的干扰 。也许注意的还有很多 , 暂时先想到这些 , 在具体的操作过程中在具体问题具体交流! 第二部分:关于软件操作系统常见的有win95. win97. win98. winme. winNT. win2000. winXP 以及linux等 。其中98.2000.me和XP是比较适合的 。linux我没有安装过 , 不知道 。win95和97对于一些硬件支持不很好 , WINNT中的一些驱动程序和多媒体程序执行不好 。最好安装你的声卡的随机驱动程序或者最新驱动程序 。如果感觉录音过程中存在问题 , 而且其他方面修正无法解决 , 最好更换驱动程序或者采用公版驱动程序 。有时候 , 效果最好的驱动程序却不一定是最新的驱动 。另外还有就是主板的补丁一定要安装 , 而且是适合当前操作系统的补丁 。录音软件选择CoolEDIT Pro汉化版 , 比较容易上手 , 效果也不错 , 如果不熟悉 , 也可以选用Nero程序中带的一个 。有一点要明确:这类软件没有好和不好之分 , 只是在某些方面适合和不适合 。CoolEDIT Pro是比较适合的 , 而且其后期处理功能很强 。压缩软件推荐lame3.91 , 带有一个外壳 。(现在应该有更新的版本了 , 我还没有试用过 。如果有朋友需要 , 我可以将这两个程序上船 。第三部分:录制和压缩在录制前需要做如下准备工作 , 大多数都是必要的而且是必需的!1.开启计算机 , 检查软件工作是否正常 , 配置Cooledit程序的缓存 , 保留硬盘空间至少1G(能录1.5小时);2.连接好计算机和录音机的转录线;3.如果有可能 , 尽量使录音机和计算机不用一个插座供电;4.录音机离显示器1.5m以上 。以免将显示器磁化!5.录音机磁头清洁 , 用专用的磁头清洗剂即可 。如果没有 , 无水酒精和四氯化碳都是可行的 。在清洁的时候 , 注意要一起清洁整个磁带通道 , 包括录放头、带托、压带轮、引带轮等 。清洁完成后 , 不要马上放音 , 应间隔10分钟以上 , 并且在放音前要借助聚光手电观察压带轮上是否有织物纤维、磁纷污渍等、以及加电观察压带轮和卷带轮的运转情况 , 如果有必要需要用手尝试堵转 , 发现卷带轮扭力过大需要修理(否则过力矩抖晃严重) , 如果卷带轮扭力过小也需要修理(否则易卡带) 。一般以用手捏不易被捏住为合适 。6.磁带准备:在准备转录前应该对磁带节目比较熟悉 , 至少听1遍 , 掌握一下内容:主要包括(1)磁带时间长度(2)磁带真个音量是否均衡(3)磁带动态是否均衡(4)磁带是否有比较严重的瑕疵 , 如铰带、磁纷脱落(5)确定磁带采样的基准 。如果在试听时发现抖晃或者前后变调 , 要及时查找原因 , 在排除放音机的原因后 , 一般可以判断为磁带内部阻力大或者阻力不均 , 通过快速倒带1~2次即可解决问题 , 如果还是不行 , 则时由于在存放过程中磁带变形或者其中的带轮等部件变形 , 建议找一高质量的磁带 , 将其中的磁带部分导出到另外的带机上 , 将准备录制的磁带导入高质量磁带带盒即可 。我用的是一盒1998年出的正版SONY60min磁带 , 根据经验 , SONY和TDK是比较好的选择 。开启cooledit , (关于Cooledit的教程 , 网络上很多 , 大家可以自己摸索或者自己去找 , 我就不班门弄斧了)新建文件试录一段 , 在这一段确定录放音电平 , 如果计算机无法校正 , 就需要更改放音机的音量 , 以选择合适的录音电平 。录音范围以上面确定的采样基准为基准 。如果确定不准 , 可以多录两次 。要求是:最高的电平情况下显示不超过-3db , 否则失真严重 , 平均电平不能低于-12 , 否则音量不合适(太小) 。试录合适以后 , 就要正式录音了:注意在正式录音过程中 , 绝对不要更改录音机的音量和计算机上录音调音台的音量 。以免消噪声无法确定基准 。在磁带首尾的空白区段可以多录制一些 , 一般1 ~ 2min , 方便以后制作时噪声采样 。还有 , 在录放机开启后一直到录音结束 , 要保持距离录音机1m以外 , 更不要靠近录音机去按键 , 否则容易感应交流声(某些机器有这样的毛病) 。后期处理是比较耗时间的工作 , 建议大家有些耐心 。另外这一时期的处理工作因录制的内容不同而不同 , 不可能千篇一律 。我简单把常用的几项说明一下:1.噪声消除:选择磁带首尾的空白区域 , 作为取样区域 , 取样后选择整个磁带进行消噪 。一般磁带消噪取样以单面为基准 , 即A面采样消A面 , B面采样消B面 。对于以语言为主的内容 , 消噪需要彻底 , 对于音乐和歌曲为主题的内容 , 消噪声可以分两次进行第一次采样可以选择80~95 , 第二次重复采样 , 消噪 。2.斯声处理:对于某些磁带 , 在噪声消除以后还是有比较明显的噪声 , 即斯声 , 就需要进行斯声消除 。消除方法见菜单 。3.如果有必要 , 应该进行破音修复、参数均衡、动态调整等操作 , 最后进行声场声相处理 , 选择MASTERING WIDTH即可 。如果你已经非常熟悉了 , 就不妨进行更深的后期处理 , 以获得最满意的听觉效果 。4.我需要说明的是 , 所有的后期处理中起决定作用的是录制的内容 。所有进行的处理都要以适合表现或者有助于完美表现录制的内容为前提 。!!!如果处理影响到了音乐的表现力、感染力 , 倒不如让他不处理听着舒服 。5.压缩:压缩时有多项内容可选 , 一般可选择128/44 , 也可以选择VBR 。对于品相较好的原版磁带建议压缩成192 , 如果磁带内高频成分较多而且属于表现类内容 , 还可以再高256 , 直到320 。如果时语言内容 , 最高可选128或者160 , 再高没有必要 。如果带子质量一般 , 可选56/80 。如果你不是经常再随声听上听MP3 , 可以压缩成22/32等非标准采样的格式以节省硬盘空间 。参考资料:百度历史回答
文章插图
如何高质量录制自己的吉他弹唱视频?普通的DV就可以了 , 支持1080高清的 , 如果有条件的话你可以买小高清摄像机 , 如Z5C , 5D2 , 没有的话就用高清DV就行 。吉他直接电箱录和麦克录音都可以 。顶级的话最好用麦克 , 可玩性也高(改变不同的麦克、调整麦克的数量、距离、角度)如果你的房间也合适录音的话 , 那麦克差不多是首选 。后期剪辑的话直接就是premiere,绘声绘影 , 威力导演就足够满足你的需求了 。
请高手赐教 , 如何录制高质量的鸟鸣声音!!!谢谢了用专业级的录音笔 。在野外录时用棉花等材质把录音的那头包起 , 能起到防风作用 , 不然有呼呼的声 。回答完毕 , 希望能帮到你
文章插图
请问大家如何能把电脑上的音乐高质量的录到磁带上声卡的音频输出最好不要直接接在MIC口上 , 因为MIC口和LINEIN的输入电平是不一样的 , 直接接的话会有削波失真 。建议你在中间接一个可变电阻器 , 试着调节一下会好些的 。
【如何录制高质量录音】
推荐阅读
- ug怎么安装在电脑上 win10 如何安装ugNX8.5,win7和win10哪个好用
- 地表12强是什么意思 如何购买地表最强积分,地表最强十二人
- 电话彩铃怎么设置 天津移动如何更换彩铃,天津移动流量包
- 正在上映的电影 如何下载上映电影下载,电影一般上映多久下线
- 饿狼传说2 饿狼传说如何唱,邓紫棋唱的饿狼传说
- 魔术 如何穿墙魔术,穿墙
- 如何登录石榴社区
- 4点钟的洛杉矶搞笑段子 如何拍10秒钟的段子,怎么拍段子上热门
- 您的机顶盒已被设置为禁止安装 如何禁止电视盒子更新软件,电视盒子禁止安装来源不明的应用