public class CallRecord01 extends Activity { - private Button beginrecordservice;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //
- beginrecordservice=(Button)findViewById(R.id.startrecordservice);
- beginrecordservice.setOnClickListener(new BeginRecord());
- }
- //
- private class BeginRecord implements OnClickListener{
-
- @Override
- public void onClick(View v) {
- Intent serviceIntent=new Intent(getApplicationContext(),CallRecordService.class);
- getApplicationContext().startService(serviceIntent);
-
- }
-
- }
- }
复制代码 - public class CallRecordService extends Service {
-
- @Override
- public IBinder onBind(Intent intent) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void onCreate() {
- super.onCreate();
- Toast.makeText(getApplicationContext(), "录音服务已经创建!", Toast.LENGTH_LONG).show();
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- Toast.makeText(getApplicationContext(), "录音服务已经销毁!", Toast.LENGTH_LONG).show();
- }
-
- @Override
- public void onStart(Intent intent, int startId) {
- super.onStart(intent, startId);
- Toast.makeText(getApplicationContext(), "录音服务已经启动!", Toast.LENGTH_LONG).show();
- //
- TelephonyManager telephonymanager=(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
- telephonymanager.listen(new PhoneListener(getApplicationContext()), PhoneStateListener.LISTEN_CALL_STATE);
-
- }
-
- }
复制代码 - public class PhoneListener extends PhoneStateListener {
- File audioFile;
- MediaRecorder mediaRecorder; //= new MediaRecorder();
- Context c;
- //
- boolean iscall=false;
- //
- public PhoneListener(Context context){
- c=context;
- iscall=false;
- }
- @Override
- public void onCallStateChanged(int state, String incomingNumber) {
- super.onCallStateChanged(state, incomingNumber);
- mediaRecorder = new MediaRecorder();
- switch(state){
- case TelephonyManager.CALL_STATE_OFFHOOK:
- iscall=true;
- try {
- recordCallComment();
-
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- mediaRecorder.stop();
- }
- Toast.makeText(c, "正在录音", Toast.LENGTH_SHORT).show();
- break;
- case TelephonyManager.CALL_STATE_IDLE:
- //if(mediaRecorder!=null){
- //mediaRecorder.stop();
- //mediaRecorder=null;
- //}
- if(iscall){
- mediaRecorder.stop();
- iscall=false;
- }
- break;
- }
- }
- //
- public void recordCallComment() throws IOException{
- System.out.println(mediaRecorder);
-
- //这里AudioSource.MIC可以改为AudioSource.VOICE_CALL, 把音源变
- //电话通话内容, 但似乎很多机都不支持通话录音
- mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
- mediaRecorder
- .setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
- mediaRecorder
- .setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
- audioFile = File.createTempFile("record_", ".amr");
- mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
- mediaRecorder.prepare();
- mediaRecorder.start();
- }
-
- }
复制代码 |
-
From : http://www.eoeandroid.com/thread-114871-1-1.html
- Android(安卓)中歌曲录制。。。
- Android(安卓)代码监控apk安装,卸载,替换
- Android(安卓)studio 57 MP3 音乐播放器 代码上一曲下一曲
- Android(安卓)BaseAdapter 例子
- Android(安卓)代码监控apk安装,卸载,替换
- android_intent
- Android中九种dialog对话框代码
- Android语音识别
- android 在标题栏加上按钮
随机推荐
-
如何去写 Android(安卓)init.rc (Android
-
Android之Audio初探
-
Android(安卓)的消息队列模型
-
Android(安卓)软键盘 禁用回车功能或者换
-
Android(安卓)-- 网络相关的系统服务启动
-
Android(安卓)TextView加上阴影效果
-
Android布局的一些属性和开关、创建log图
-
Android获取摄像头详细信息
-
Android(安卓)kernel code merged into m
-
Android(安卓)启动过程