【问题标题】:Save recorded sound on android在android上保存录制的声音
【发布时间】:2015-01-08 18:58:13
【问题描述】:

我使用意图来录制声音。

但我不知道如何将这个声音保存在 sdcard 中。 我创建了一个文件夹“file.mkdirs();”。如何捕获记录并保存在新文件夹中(并更改名称)?

如果可能需要在录制后立即按“保存”按钮保存录制。我认为需要一个 var “记录”,如果他是 0 则不记录,如果是 1 是。

通过保存功能检查声音是否被录制并保存在文件夹中。

public class ObjSuperior extends ActionBarActivity {


    int peticion = 1;
    Uri url1;
    int recorded = 0;

    private final String ruta_Sonidos = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/Gueopic/";

    private File file = new File(ruta_Sonidos);

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

        //Si no existe crea la carpeta donde se guardaran las fotos

        file.mkdirs();
    }


    public void grabarSo(View v) {
        Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
        startActivityForResult(intent, peticion);
    }

    public void save(){
    //check if file are recorded and save on folder
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK && requestCode == peticion) {
            url1 = data.getData();
        }
    }

【问题讨论】:

标签: android audio-recording


【解决方案1】:

这对我有用,也许你可以用这个?:

public void recordAudio(String fileName) {
final MediaRecorder recorder = new MediaRecorder();
ContentValues values = new ContentValues(3);
values.put(MediaStore.MediaColumns.TITLE, fileName);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setOutputFile("/sdcard/sound/" + fileName);
try {
  recorder.prepare();
} catch (Exception e){
    e.printStackTrace();
}

final ProgressDialog mProgressDialog = new ProgressDialog(MyActivity.this);
mProgressDialog.setTitle(R.string.lbl_recording);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setButton("Stop recording", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
    mProgressDialog.dismiss();
    recorder.stop();
    recorder.release();
    }
});

mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener(){
    public void onCancel(DialogInterface p1) {
        recorder.stop();
        recorder.release();
    }
});
recorder.start();
mProgressDialog.show();

}

【讨论】:

  • 感谢您的回答,但我需要使用意图来打开基本的 android 记录器,而不是创建记录器。我的代码录制了声音,但只需要在执行 sve 函数时保存这个声音。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-18
相关资源
最近更新 更多