package com.example.psa987.recorderservice;
//RecordService.java
import android.app.Service;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
import java.io.IOException;
/**
* Created by psa98 on 2017-06-06.
*/
public class RecordService extends Service {
private static final String Log_Tag = "RecorderService";
private MediaRecorder recorder = null;
private static String filename = null;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
//서비스가 처음으로 실행되면 ~하는 동작
}
@Override
public void onDestroy() {
//서비스가 중지되면 녹음을 중지한다
Toast.makeText(this, "Record Service가 중지되었습니다.", Toast.LENGTH_LONG).show();
Log.d(Log_Tag, "onDestroy()");
recorder.stop();
recorder.release();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//서비스가 시작 될 때마다 녹음을 시작한다
filename = Environment.getExternalStorageDirectory().getAbsolutePath();
filename += "/Record.3gp";
if (recorder == null) {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//마이크 사용
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);//파일 확장자 설정
recorder.setOutputFile(filename);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);// 인코더 설정
try {
recorder.prepare();
} catch (IOException e) {
Log.e(Log_Tag, "prepare() failed");
}
Toast.makeText(this, "Record Service가 시작되었습니다.", Toast.LENGTH_LONG).show();
Log.d(Log_Tag, "onStart()");
recorder.start();//녹음 시작
} else {
Toast.makeText(this, "Record Service가 정지되었습니다.", Toast.LENGTH_LONG).show();
Log.d(Log_Tag, "onDestroy()");
recorder.stop();
recorder.release();
recorder = null;
}
return super.onStartCommand(intent, flags, startId);
}
}
package com.example.psa987.recorderservice;
//MainActivity.java
import android.content.Intent;
import android.media.MediaRecorder;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
private static final String Log_Tag = "RecorderService";
Button record;
private MediaRecorder recorder = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
record = (Button) findViewById(R.id.record);// 녹음
record.setOnClickListener(this);
}
public void onClick(View v) {
if(recorder == null){
Log.d(Log_Tag, "onClick() record ");
startService(new Intent(this, RecordService.class));
record.setText("녹음 중지");
} else {
Log.d(Log_Tag, "onClick() record ");
stopService(new Intent(this, RecordService.class));
recorder = null;
record.setText("녹음 시작");
}
}
}
녹음 버튼을 누르면 녹음이 시작되었다고 나오는데 파일은 없네요
onCreate에 여러가지 써 봤다가 아닌것 같아서 비워놨는데
어떤 식으로 해야 할지 알려주세요