안드로이드타운에서 음성녹음 예제를 사용해보았습니다.

 

소스는 아래에 있습니다!

 

그런데.. 이 파일은 mp4형식이고, PC에서 재생이 안되더랍니다 ㅠ.ㅠ

소스에서 나온 recorded.mp4를 소켓으로 PC에 보내서 재생해보니

코덱이나 포멧이 맞지않는다는군요..

 

혹시나 해서 확장자를 소스내에서 강제로 바꿔도 마찬가지구요..

그래서 제 통신소스가 문제인가 하고 이미 가지고있는 다른 wav 파일을 소켓통신으로 보내서 재생했는데

무리없이 잘 재생되고 있습니다... 혹 음성녹음 후에 wav또는 mp3로 저장할 수 있을까요?

 

 

 package org.androidtown.media.audio.recorder;
import java.io.File;
import android.app.Activity;
import android.content.ContentValues;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
/**
 * Audio Recorder
 *
 * @author Mike
 */
public class SampleAudioRecorderActivity extends Activity {
    final private static String RECORDED_FILE = "/sdcard/recorded.mp4";
    MediaPlayer player;
    MediaRecorder recorder;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button recordBtn = (Button) findViewById(R.id.recordBtn);
        Button recordStopBtn = (Button) findViewById(R.id.recordStopBtn);
        Button playBtn = (Button) findViewById(R.id.playBtn);
        Button playStopBtn = (Button) findViewById(R.id.playStopBtn);
        recordBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (recorder != null) {
                 recorder.stop();
                    recorder.release();
                    recorder = null;
                }
                recorder = new MediaRecorder();
                recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
                recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
                recorder.setOutputFile(RECORDED_FILE);
                try {
                 Toast.makeText(getApplicationContext(), "녹음을 시작합니다.", Toast.LENGTH_LONG).show();
                 recorder.prepare();
                 recorder.start();
                } catch (Exception ex) {
                    Log.e("SampleAudioRecorder", "Exception : ", ex);
                }
            }
        });
        recordStopBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (recorder == null)
                    return;
                recorder.stop();
                recorder.release();
                recorder = null;
                Toast.makeText(getApplicationContext(), "녹음이 중지되었습니다.", Toast.LENGTH_LONG).show();
            }
        });
        playBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (player != null) {
                 player.stop();
                    player.release();
                    player = null;
                }
                Toast.makeText(getApplicationContext(), "녹음된 파일을 재생합니다.", Toast.LENGTH_LONG).show();
                try {
                 player = new MediaPlayer ();
                    player.setDataSource(RECORDED_FILE);
                    player.prepare();
                    player.start();
                } catch (Exception e) {
                    Log.e("SampleAudioRecorder", "Audio play failed.", e);
                }
            }
        });
        playStopBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (player == null)
                 return;
                Toast.makeText(getApplicationContext(), "재생이 중지되었습니다.", Toast.LENGTH_LONG).show();
                player.stop();
                player.release();
                player = null;
            }
        });
    }
    protected void onPause() {
        if (recorder != null) {
         recorder.release();
         recorder = null;
        }
        if (player != null) {
            player.release();
            player = null;
        }
        super.onPause();
    }
}

profile

 

 

────────────────────── Android.Park

KOPS Co.,Ltd Technical R&D Center / Researcher
───────────────────────────────