마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 mediarecorder 문자 출력 질문

0 추천
package com.example.voice_control;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.speech.RecognizerIntent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class Control_Main extends Activity {

 Button start;
 Button end;
 TextView talk;
 MediaRecorder recorder = new MediaRecorder();

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  start = (Button) findViewById(R.id.button1);
  end = (Button) findViewById(R.id.button2);
  talk = (TextView) findViewById(R.id.textView1);
  talk.setText("");  //문자 초기화
  start.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {

    try {
     Toast.makeText(getApplicationContext(), "녹음이 시작되었습니다.",
       Toast.LENGTH_LONG).show();
     File file = Environment.getExternalStorageDirectory();
     String path = file.getAbsolutePath() + "/test.3gp";
     recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
     recorder.setOutputFile(path);
     recorder.prepare();
     recorder.start();

    } catch (IllegalStateException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  });
  end.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    Toast.makeText(getApplicationContext(), "녹음이 종료되었습니다.",
      Toast.LENGTH_LONG).show();
    recorder.release();

   }
  });

 }
}

일단 녹음 시작 종료 완료된 상탠데

녹음 중에 실시간으로 textview에 마이크음성이 출력되도록 하고 싶은데 방법이 잇나요?

어떤함수를 이용해야하는지도 궁금합니다

WelchsKiller (600 포인트) 님이 2014년 5월 29일 질문

1개의 답변

0 추천
특별히 함수는 없고 구현 하셔야 됩니다.

녹음 데이터의 amplitude를 구해서 표시해 주셔야합니다.

http://developer.samsung.com/android/technical-docs/Displaying-Sound-Volume-in-Real-Time-While-Recording

링크는 progressbar로 구현한 예제 입니다. 조금만 수정하시면 될거 같네요.
노예의집 (23,370 포인트) 님이 2014년 5월 29일 답변
...