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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
getFilesDir()
Mehr siehe Mit dem Internen Speicher
Wenn Sie audio in der internen Datei-verwenden Sie Ihre eigenen media-player zum Abspielen von audio Finden Sie unter developer.android.com/guide/topics/media/mediaplayer.html - Implementation von einem content-provider, wenn Sie nicht wollen, es zu teilen mit anderen app per intent
Ich verstehe nicht, wie dieser code eigentlich speichert die Datei in den Speicher. Könnte mir bitte jemand erklären, es ein bisschen? Wie kommen wir audio in den Speicher und wie können wir als Datei zu speichern?
InformationsquelleAutor Arun C