2017-05-23 88 views
1

我正在尝试为离子应用程序构建自定义Android插件。这个插件用于录制音频。当应用程序崩溃或被用户杀死时,我的FileOutputStrem未正确关闭,我的MediaPlayer不再播放该文件(它具有正确的文件路径)。我正在寻找一种解决方案,它是一种自动保存功能。所以我想在记录过程中每隔x秒保存一次记录。你有什么想法我可以做到这一点?如何在应用程序崩溃时保存音频记录?

记录是这样完成的:

final byte data[] = new byte[bufferSize]; 
    String filename = getTempFilename(); 
    FileOutputStream os = null; 
    isRecording = recording; 

    try { 
     os = context.openFileOutput(filename, Context.MODE_PRIVATE); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 


    if (os != null) { 
     while (isRecording) { 
      int read = recorder.read(data, 0, bufferSize); 

      if (AudioRecord.ERROR_INVALID_OPERATION != read) { 
       try { 
        os.write(data); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
     try { 
      os.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

如果需要更多的信息,请让我知道

PS。我还需要iOS的解决方案:)

回答

0

您是否尝试在finally块中添加os.close

+0

是的,我做了,但问题是,它可能永远达不到该部分,因为用户的应用程序崩溃的崩溃 –

相关问题