Android speichern Sie die audio-Dateien in den internen Speicher

Derzeit habe ich erstellt, die audio-Aufnahme-App von Android. Die Datei ist gespeichert in Externen Speicher.

Was ist, wenn ich die Methode ändern zu speichern, da die Interne Speicherung mit dem Kontext des MODE_PRIVATE

Habe ich gelesen, das Android-Entwickler zum speichern von Dateien aber ich habe keine Ahnung, wie konvertiert man die Datei-Instanz in das byte-array zu speichern Sie die Datei und laden Sie die audio-Datei

das unten ist mein code zum speichern der audio-Datei

public void onClick(View view) throws Exception {
    if (count == 0) {

        tbxRecordStatus.setText("Record");
        btnRecord.setText("Stop Record");

        Toast.makeText(MainActivity.this, "Recording Starts",
                Toast.LENGTH_SHORT).show();
        dateInString = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(
                new Date()).toString();
        String fileName = "TVSSSSD_" + dateInString + " record.3gp";

        SDCardpath = Environment.getExternalStorageDirectory();
        myDataPath = new File(SDCardpath.getAbsolutePath()
                + "/.My Recordings");

        //mydir = context.getDir("media", Context.MODE_PRIVATE);
        if (!myDataPath.exists())
            myDataPath.mkdir();


        audiofile = new File(myDataPath + "/" + fileName);

        Log.d("path", myDataPath.getAbsolutePath());
        //File fileWithinMyDir = new File(mydir, fileName);
        //audiofile = fileWithinMyDir;
        //FileOutputStream out = new FileOutputStream(fileWithinMyDir);

        recorder = new MediaRecorder();
        recorder.reset();
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        recorder.setAudioEncodingBitRate(16);
        recorder.setAudioSamplingRate(44100);

        recorder.setOutputFile(audiofile.getAbsolutePath());

        recorder.prepare();

        recorder.start();

        count++;

    } else {

        tbxRecordStatus.setText("Stop");
        btnRecord.setText("Start Record");
        Toast.makeText(MainActivity.this, "Recording Stops",
                Toast.LENGTH_SHORT).show();
        if (recorder != null) {
            recorder.stop();
            recorder.release();

            recorder = null;

        } else {
            tbxRecordStatus.setText("Warning!");
            Toast.makeText(MainActivity.this, "Record First",
                    Toast.LENGTH_SHORT).show();
        }
        count = 0;
    }
}

das unten ist mein code zum laden der audio-Datei

recordList = new ArrayList<String>();
    File directory = Environment.getExternalStorageDirectory();
    file = new File(directory + "/My Recordings");
    File list[] = file.listFiles();
    for (int i = 0; i < list.length; i++) {
        recordList.add(list[i].getName());
    }

    Collections.sort(recordList, Collections.reverseOrder());

    listview = (ListView) findViewById(R.id.listView);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1,
            recordList);


    listview.setAdapter(adapter);

    listview.setTextFilterEnabled(true);

    listview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long arg3) {
            //TODO Auto-generated method stub


            String product = ((TextView) view).getText().toString();
            String fullPathAudio = file.getAbsolutePath() + "/" + product;

            File resultFile = new File(fullPathAudio);

            Intent intent = new Intent();
            intent.setAction(android.content.Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.fromFile(resultFile), "audio/*");
            startActivity(intent);
        }
    });

InformationsquelleAutor Raju yourPepe | 2013-05-03

Schreibe einen Kommentar