为Android提供MP3录音功能
实现思路讲解:Android MP3录音实现
- library: MP3录音实现源码库
- sample : 使用范例
dependencies {
compile 'com.czt.mp3recorder:library:1.0@aar'
}
-
创建MP3Recorder, 传入录音文件的File对象。
MP3Recorder mRecorder = new MP3Recorder(new File(Environment.getExternalStorageDirectory(),"test.mp3"));
-
开始录音: 调用MP3Recorder对象的start()方法。
mRecorder.start();
-
停止录音: 调用MP3Recorder对象的stop()方法。
mRecorder.stop();
代码示例见:AndroidMP3RecorderSample
音量的计算,来自于 三星开发者文档-Displaying Sound Volume in Real-Time While Recording
里面对于音量的最大值设置为了4000,而我实际测验中发现大部分声音不超过2000,所以就在代码中暂时设置为2000。
这方面没有找到相关资料,如果有人知道理论值之类的,请联系我(chentong.think@gmail.com) 完善此库,谢谢。
so库本身没有任何限制,但受限于Android NDK的支持
- arm armv7 支持Android 1.5 (API Level 3)及以上版本
- x86支持Android 2.3 (API Level 9)及以上版本
本库提供了arm armv7 支持, 即会有armeabi和armeabi-v7a两个文件夹。
如果您当前使用的其他so文件只有两个文件夹中的一种,建议您进行拷贝,保证两个文件夹内都有so文件,避免引发java.lang.UnsatisfiedLinkError
错误。
以app使用了百度地图sdk为例:
一般会引发java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapSDK_v3_2_0_15 from loader
错误。
解决办法: 将armeabi文件夹下的 .so文件,一并copy至armeabi-v7a,使两个文件夹下都有相应文件。
Copyright 2014 GavinCT
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.