MediaRecorder替代Oreo之前的setNextOutputFile?

时间:2017-10-17 06:22:22

标签: android android-support-library mediarecorder android-mediarecorder

我在奥利奥之前使用MediaRecorder API。我面临的问题是,如果录制持续1或2小时,则会在一个连续的大文件上进行录制。

由于Oreo(API级别26)MediaRecorder API引入了setNextOutputFile(),这对于记录多个文件而不会丢失数据非常有用。这些文件可以配置为小尺寸,这样在处理时它们不会占用大量的应用程序内存。

我的计划是以下列方式使用它们:

File current;
File nextFile;
// Code to initialize/create these file instances
.
.
.
// Code to initialize/create MediaRecorder insatance which will be in try catch
mRecorder.setOutputFile(currentFileName);
mRecorder.prepare();
mRecorder.setNextOutputFile(nextFile);
.
.
mRecorder.start();
.
.
mRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
      @Override
      public void onInfo(MediaRecorder mr, int infoCode, int extra) {
         Log.e(TAG, "Media recorder info : " + infoCode);
         if (infoCode == MediaRecorder.MEDIA_RECORDER_INFO_NEXT_OUTPUT_FILE_STARTED) {
         String path = getNewUniquePath();
         File nextFile = new File(path); 
         mRecorder.setNextOutputFile(nextFile);
      }
   }
 });
.
.
.
// End of code

这种方法将继续提供固定小尺寸的下一个文件,这样即使录制超过1或2小时,我们也会有小尺寸的文件列表而不会丢失数据。

现在这里的主要问题是Oreo中没有以前的API版本。

以前的Android版本有没有其他选择? 在这种情况下,支持库会有所帮助吗?

0 个答案:

没有答案