2015-01-08 2 views
0

Я использую намерение записать звук.Сохранить записанный звук на android

Но я не знаю, как сохранить этот звук в sdcard. Создаю папку "file.mkdirs();". Как поймать запись и сохранить новую папку (и изменить имя)?

Если возможно, вам нужно сохранить запись, нажмите кнопку «Сохранить», чтобы сразу после записи не было сохранено. Мне кажется, нужно «записать» var, если его 0 не записано, и если 1 да.

Afer on save функция Проверьте, записаны ли звук и сохраните их в папке.

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(); 
     } 
    } 
+1

возможно дубликат [Запись файла в SDCard] (http://stackoverflow.com/questions/2455102/write-a-file-to-sdcard) –

ответ

0

Это работает для меня, может быть, вы можете использовать это ?:

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(); 

}

+0

Спасибо за ответ, но мне нужно использовать намерение открыть базовый регистратор Android, не создавать рекордер. Мой код записывает звук, но нужно только выполнить функцию sve сохранить этот звук. – Phyron

Смежные вопросы