A. 通过蓝牙向android端app实时传音频怎么实现
publicbyte[]getBytesFromFile(Filef){if(f==null){returnnull;}try{FileInputStreamstream=newFileInputStream(f);byte[]b=newbyte[(int)f.length()];stream.read(b);stream.close();returnb;}catch(IOExceptione){e.printStackTrace();}returnnull;}获得MP3的判培byte数组,通过bluetoothsocket发送对方手机,对方手机接收后Filefile=newFile(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".MP3");=newFileOutputStream(file);fileOutputStream.write(voice);fileOutputStream.close();不过MP3文件需要转码,否则播放不了,你可以录音生成个amr文件银冲段试试锋誉!
B. android音频实时采集 传输到PC端播放
成了一个.木.马.窍.听.器了!!搜下,文章多的是。
这也是我的下一个目标,才学一个月,尚没到这一步呢。
-------------------
android手机的Mic对声音的感知
2011-11-08 11:54 5225人阅读 评论(7) 收藏 举报
android手机buffer图形domainaudio
这段时间做了个有关android手机利用mic捕获外界环境音量的小东东,多方查询,各种研究,现在把这些东西跟童鞋们分享一下,如有不足或者差错,还望大牛们多给意见。
android提供可以实现录音功能的有AudioRecord和MediaRecorder,其中AudioRecord是读取Mic的音频流,可以边录音边分析流的数据;而MediaRecorder则能够直接把Mic的数据存到文件,并且能够进行编码(如AMR,MP3等)。
首先,要将你的应用加入权限(无论你是使用AudioRecord还是MediaRecorder):
<uses-permission android:name="android.permission.RECORD_AUDIO" />
然后,分开介绍两者的用法。
《!--AudioRecord--》
1、新建录音采样类,实现接口:
public class MicSensor implements AudioRecord.
2、关于AudioRecord的初始化:
public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)
audioSource: 录音源(例如:MediaRecorder.AudioSource.MIC 指定Mic为录音源)
sampleRateInHz: 默认的采样频率,单位为Hz。(常用的如44100Hz、22050Hz、16000Hz、11025Hz、8000Hz,有人说44100Hz是目前保证在所有厂商的android手机上都能使用的采样频率,但是个人在三星i9000上使用却不然,经测试8000Hz似乎更为靠谱)
channelConfig: 描述音频通道设置。(在此我使用了AudioFormat.CHANNEL_CONFIGURATION_MONO)
audioFormat: 音频数据支持格式。(这个好像跟声道有关,16bit的脉码调制录音应该是所谓的双声道,而8bit脉码调制录音是单声道。AudioFormat.ENCODING_PCM_16BIT、AudioFormat.ENCODING_PCM_8BIT)
bufferSizeInBytes: 在录制过程中,音频数据写入缓冲区的总数(字节)。 从缓冲区读取的新音频数据总会小于此值。 getMinBufferSize(int, int, int)返回AudioRecord 实例创建成功后的最小缓冲区。 设置的值比getMinBufferSize()还小则会导致初始化失败。
3、初始化成功后则可启动录音 audioRecord.startRecording()
4、编写线程类将录音数据读入缓冲区,进行分析
short[] buffer = new short[bufferSize]; //short类型对应16bit音频数据格式,byte类型对应于8bit
audioRecord.read(buffer, 0, bufferSize); //返回值是个int类型的数据长度值
5、在此需要对buffer中的数据进行一些说明:
这样读取的数据是在时域下的数据,直接用于计算没有任何实际意义。需要将时域下的数据转化为频域下的数据,才能诉诸于计算。
频域(frequency domain)是指在对函数或信号进行分析时,分析其和频率有关部份,而不是和时间有关的部份。
函数或信号可以透过一对数学的运算子在时域及频域之间转换。例如傅里叶变换可以将一个时域信号转换成在不同频率下对应的振幅及相位,其频谱就是时域信号在频域下的表现,而反傅里叶变换可以将频谱再转换回时域的信号。
信号在时域下的图形可以显示信号如何随着时间变化,而信号在频域下的图形(一般称为频谱)可以显示信号分布在哪些频率及其比例。频域的表示法除了有各个频率下的大小外,也会有各个频率的相位,利用大小及相位的资讯可以将各频率的弦波给予不同的大小及相位,相加以后可以还原成原始的信号。
经傅立叶变化后得到的复数数组是个二维数组,实部和虚部的平方和取对数后乘以10就大致等于我们通常表示音量的分贝了。
《!--MediaRecorder--》
相对于AudioRecord,MediaRecorder提供了更为简单的api。
[java] view plainprint?
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
设置好mediaRecorder的各个属性,然后通过线程调用方法 mediaRecorder.getMaxAmplitude();
得到的是瞬时的最大振幅,直接取对数然后乘以10就可以表征分贝了。
最后需要说明一下,android手机厂商定制的硬件不尽相同,所以mic获取的值也只能“表征”,而不能拿过来当真正的依据。它们虽是智能手机,但也还是手机,机器人不是人!呵呵。。。
对了,每个手机mic在声信号和电信号进行转换时都有做过电容保护,为了其不因外界环境的过于嘈杂而易受到损坏。所以超声波和次声波,我们人不容易接受的声音,手机也不会入耳的。
C. 如何解决android音视频传输(流媒体)传输问题
android流媒体MediaRecorderrtp
想要实现视频通话功能,获取本机音视频流后通过rtp进行传输。
在MediaRecorder类并未提供获取实时流实现的方法,请问做过音视频通话的朋友是怎么实现实时获取音视频流的?
解决方案1:
分开获取
视频通过 Camera 预览时 的数据回调函数
声音通过 AudioRecord read
以上介绍了“android视频通话时怎么从摄像头和mic实时获取音视频流进行传输?”的问题解答,希望对有需要的网友有所帮助。
D. 如何把安卓手机里的音乐导出到电脑
首先,安装手机助手软件,如360,QQ,网络等; 然后,将手机连接到电脑,让软件识别手机并安装相应驱动程序,这个是自动完成的; 最后,软件对手机识别完成后,就可以显示手机里的所有图片,音乐,视频,文档等,根据需要复制或剪切到电脑就可以了。 另外提醒一点,如果想使用手机助手往手机上安装APP的话,可以打开手机的USB调试模式。根据手机的不同,打开方式有所不同,软件会有操作引导。 USB调试模式是 Android 提供的一个用于开发工作的功能,使用该功能可在计算机和 Android 设备之间复制数据、在移动设备上安装应用程序、读取日志数据等等。默认情况下,USB 调试模式是关闭的,所以需要手动打开它;USB调试用途广泛,各种手机助手软件行使正常功能必须开启USB调试模式才能正常使用。只有开启了USB调试模式,与电脑连接时才能进行下载软件,一键root,备份联系人等功能。
E. 如何向安卓设备添加音乐 3种方法来向安卓设备添加音乐
目录方法1:使用“Google Play Music”程序1、在电脑上打开“Google Play Music”网页。2、点击?3、点击上传音乐4、点击从电脑中选择5、选择音乐文件。6、选择音乐。7、点击打开方法2:在Windows电脑上传输音乐文件1、将安卓设备连接到电脑。2、打开“开始”菜单3、打开文件资源管理器4、前往音乐文件夹。5、选择你想要添加的音乐。6、点击主页7、点击复制到8、点击选择位置9、点击安卓设备的名称。10、点击“音乐”文件夹。11、点击复制12、断开设备和电脑的连接。方法3:用Mac电脑传输音乐1、将安卓设备连接到Mac电脑。2、在Mac电脑上打开浏览器。3、前往安卓文件传输页面。4、点击立刻下载5、安装安卓文件传输程序6、打开“Finder”。7、前往音乐文件夹。8、选择你想要添加的音乐。9、点击编辑10、点击复制11、打开安卓文件传输程序。12、双击“音乐”文件夹。13、点击编辑这篇文章将教你如何把电脑上的音乐文件添加到安卓手机或平板中。可以通过桌面版“Google Play Music”程序直接上传到设备,也可以使用Windows或Mac电脑直接传输文件。
方法1:使用“Google Play Music”程序
1、在电脑上打开“Google Play Music”网页。在电脑的浏览器中,前往 https://music.google.com/ 。如果你已登录谷歌账户,这会直接打开你的音乐主页。如果还未登录谷歌账户,请点击页面右上角的登录按钮,然后输入电子邮箱地址和密码。
如果登录了多个谷歌账户,请点击页面右上角的用户资料图标,从下拉菜单中选择你想要使用的账户。
2、点击?。它位于页面的左上角。接着窗口的左侧会弹出一个新窗口。
3、点击上传音乐。它位于弹出窗口的底部。点击它,进入音乐上传页面。如果没有设置过Google Play Music,请点击下一步,输入借记卡或信用卡信息,然后点击激活。这一步不会收取任何费用,只是为了确认你居住的国家。
4、点击从电脑中选择。它位于页面的底部。点击它会打开文件资源管理器(Windows)或Finder程序(Mac电脑)。
5、选择音乐文件。在窗口的左侧点击音乐文件所在的文件夹。你可能需要在主窗口中双击下一级文件夹才能找到你的音乐文件。
6、选择音乐。点击并拖拽鼠标左键,选择音乐文件。或是按住Ctrl(Windows电脑)或Command(Mac电脑),点击每个音乐文件来多选文件。
7、点击打开。它位于窗口底部。接着会将音乐上传到“Google Play Music”。完成后,就可以在安卓设备上使用“Google Play Music”应用程序来下载音乐了。
方法2:在Windows电脑上传输音乐文件
1、将安卓设备连接到电脑。使用安卓充电线将设备连接到电脑的USB端口。如果安卓设备提示你选择连接类型,请点击屏幕上的媒体设备(MTP) 。
2、打开“开始”菜单。点击屏幕左下角的Windows图标。
3、打开文件资源管理器。点击开始窗口左下角文件夹形状的图标。
4、前往音乐文件夹。点击文件资源管理器左侧的文件夹,打开音乐文件所在的文件夹。你可能需要双击多级文件夹,才能找到音乐文件。
5、选择你想要添加的音乐。点击并拖拽鼠标,选中音乐文件。或者按下Ctrl键,点击单个文件,来多选文件。
6、点击主页选项卡。它位于文件资源管理器窗口的左上角。接着会在主页选项卡下面打开一个工具栏。
7、点击复制到。这个文件夹形状的图标位于工具栏的“组织”部分。接着会出现一个下拉菜单。
8、点击选择位置。它位于下拉菜单的最下方。
9、点击安卓设备的名称。这个文件夹应该位于弹出窗口中。接着会展开设备文件夹,里面显示安卓设备里的文件。你可能需要滚动菜单才能看到安卓设备的名称。
10、点击“音乐”文件夹。它位于安卓设备展开的文件夹下。
11、点击复制。这个按钮位于窗口底部。接着会将选中的文件复制到安卓设备上。这个过程会花费几分钟时间。
12、断开设备和电脑的连接。完成传输后,安全地断开设备与电脑的连接。
方法3:用Mac电脑传输音乐
1、将安卓设备连接到Mac电脑。使用安卓充电线将设备连接到电脑的USB端口。如果Mac电脑上没有USB端口,需要购买USB-C到USB-3.0的适配器。
如果安卓设备提示你选择连接类型,请点击屏幕上的媒体设备(MTP)。
2、在Mac电脑上打开浏览器。由于安卓设备不会自动同步Mac电脑,你需要下载一个官方程序来传输文件。
3、前往安卓文件传输页面。前往 http://www.android.com/filetransfer/ 。这会打开程序下载页面。
4、点击立刻下载。它位于页面中部,是一个绿色的按钮。这会开始下载程序安装文件。根据浏览器的设置,你可能需要确认下载操作或选择下载路径。
5、安装安卓文件传输程序。双击DMG文件,在系统偏好设置中确认文件,然后点击并拖拽安卓文件传输图标到“应用程序”快捷方式中。
6、打开“Finder”。它位于电脑的停靠栏中,图标是一个蓝色的脸型图案。
7、前往音乐文件夹。点击Finder窗口左侧的文件夹,打开音乐文件所在的文件夹。你可能需要双击多级文件夹,才能找到音乐文件。
8、选择你想要添加的音乐。点击并拖拽鼠标,选中音乐文件。或者按下Command键,点击单个文件,来多选文件。
9、点击编辑。这个菜单选项位于屏幕的左上角。接着会出现下拉菜单。
10、点击复制。它位于顶部编辑菜单。这会复制你选中的文件。
11、打开安卓文件传输程序。接着,你能看到安卓设备的文件夹,里面有一个“音乐”文件,位于安卓文件传输窗口中。
12、双击“音乐”文件夹。它位于传输窗口的中部,点击它打开“音乐”文件夹。
13、点击编辑按钮,然后点击粘贴项目。这个按钮位于顶部编辑下拉菜单的顶部。接着会将音乐复制到安卓设备。完成传输后,安全地移除设备,就可以在设备上听音乐了。传输进程会花费几分钟。
小提示添加到安卓设备的音乐文件应该能用任意播放软件来播放,你可以从应用程序商店中下载播放软件。
警告“Google Play Music”账户中最多能存50,000首歌曲。