2014-02-20 60 views
5

我正在開發一個使用MediaRecorder類的音頻錄製應用程序。 我有以下要求:如何暫停和恢復在Android的音頻錄製

1.當一個暫停按鈕被按下,然後暫停記錄。

2.當恢復按鈕被按下,然後恢復錄製暫停的地方。 我試試這個link

但我無法實現該功能。

任何幫助/建議將不勝感激。

回答

1

你可以參考我的答案here如果仍然有這個問題。

解決方法是在用戶暫停並重新開始恢復時停止記錄器,如在stackoverflow中許多其他答案中所述。存儲陣列中生成的所有音頻/視頻文件,並使用以下方法合併所有媒體文件。該示例取自mp4parser庫並根據需要修改一點。

public static boolean mergeMediaFiles(boolean isAudio, String sourceFiles[], String targetFile) { 
     try { 
      String mediaKey = isAudio ? "soun" : "vide"; 
      List<Movie> listMovies = new ArrayList<>(); 
      for (String filename : sourceFiles) { 
       listMovies.add(MovieCreator.build(filename)); 
      } 
      List<Track> listTracks = new LinkedList<>(); 
      for (Movie movie : listMovies) { 
       for (Track track : movie.getTracks()) { 
        if (track.getHandler().equals(mediaKey)) { 
         listTracks.add(track); 
        } 
       } 
      } 
      Movie outputMovie = new Movie(); 
      if (!listTracks.isEmpty()) { 
       outputMovie.addTrack(new AppendTrack(listTracks.toArray(new Track[listTracks.size()]))); 
      } 
      Container container = new DefaultMp4Builder().build(outputMovie); 
      FileChannel fileChannel = new RandomAccessFile(String.format(targetFile), "rw").getChannel(); 
      container.writeContainer(fileChannel); 
      fileChannel.close(); 
      return true; 
     } 
     catch (IOException e) { 
      Log.e(LOG_TAG, "Error merging media files. exception: "+e.getMessage()); 
      return false; 
     } 
    } 

對音頻文件使用標誌isAudio爲true,對於視頻文件爲false。