2017-05-23 86 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

是的,我做了,但問題是,它可能永遠達不到該部分,因爲用戶的應用程序崩潰的崩潰 –

相關問題