Я пытаюсь разделить записанный аудиофайл на более мелкие порции, если длительность звука составляет более 1 минуты, на более мелкие порции по 1 минуте каждый и обрабатывать их как отдельные аудиофайлы в Android.
Я записываю своиаудио, выполнив следующие действия: -
MediaRecorder mAudioRecorder = new MediaRecorder();
mAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
mAudioRecorder.setOutputFile(outputFile);
startRecording();
Когда я записываю вышеуказанное аудио, оно записывается и воспроизводится правильно.Теперь для обрезки этого аудио я использую библиотеку [this] [1].
CheapSoundFile cheapSoundFile = CheapSoundFile.create(in_file_path,listner);
int mSampleRate = cheapSoundFile.getSampleRate();
int mSamplesPerFrame = cheapSoundFile.getSamplesPerFrame();
int startFrame = Utilities.secondsToFrames(5.0,mSampleRate, mSamplesPerFrame);
int endFrame = Utilities.secondsToFrames(30.0, mSampleRate,mSamplesPerFrame);
String outputFileDirectory = Environment.getExternalStorageDirectory().getAbsolutePath() + this.getString(R.string.recording_folder);
try
{
File dir = new File(outputFileDirectory);
if (!dir.exists())
{
dir.mkdirs();
}
mFileNumber++;
outputFile = outputFileDirectory + "Clip_" + String.valueOf(mFileNumber) + this.getString(R.string.recording_mp3);
}
catch (Exception e)
{
e.printStackTrace();
}
cheapSoundFile.WriteFile(outputFile , startFrame, endFrame-startFrame);
final CheapSoundFile.ProgressListener listener = new CheapSoundFile.ProgressListener() {
public boolean reportProgress(double frac) {
return true;
}
};
Затем я воспроизводю обрезанный файл следующим образом: -
MediaPlayer mediaPlayer = new MediaPlayer();
try
{
if (mediaPlayer != null)
{
mediaPlayer.setDataSource(outputFile);
mediaPlayer.prepare();
}
mediaPlayer.start();
}
catch (Exception e)
{
e.printStackTrace();
}
Но при воспроизведении обрезанного аудио я получаю исключение, которое говорит: -
setDataSourceFD failed.: status=0x80000000
Любая помощь по решению этой проблемы высоко ценится.Спасибо.