1

我正在開發一個錄音應用程序......問題是我不知道如何使它在後臺工作。我的意思是,即使用戶關閉應用程序記錄器保持工作..如果它達到最大..它刪除文件並再次記錄..永遠的媒體錄製

用戶只應該按一下按鈕,應用程序應該永遠工作直到用戶卸載程序。

我的代碼如下:

public class MainActivity extends Activity { 
private MediaRecorder recorder ; 

Button B ; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    recorder = new MediaRecorder(); 

    B = (Button)findViewById(R.id.button1) ; 

     B.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 

       Thread startThread = new Thread (new startRe (recorder)); 
       startThread.start() ; 
       B.setEnabled(false); 

      } 
     } 
    ); 


} 
} 

唱片類:

public class startRe implements Runnable { 
private MediaRecorder recorder; 


startRe(MediaRecorder r) { 

    this.recorder = r ; 
} 
public void run() { 
    // TODO Auto-generated method stub 
    startRecording(); 
} 


public void startRecording() { 
    //recorder = new MediaRecorder(); 
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
    recorder.setOutputFile(getFilePath()); 
    try{ 
     recorder.prepare(); 
     recorder.start(); 
    }catch (Exception e){ 
     e.printStackTrace(); 
    } 

} 


private String getFilePath() { 
    String filePath = Environment.getExternalStorageDirectory().getPath(); 
    File file = new File(filePath, "MediaRecorderSample"); 

    if(!file.exists()) 
     file.mkdirs(); 

    return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + ".mp4"); 
} 

}

現在的問題是如何使它永遠以及如何當它到達刪除最大尺寸。 此外,使用此代碼,我不知道它是否真的錄音或因爲我找不到輸出文件。

回答

0

您可以通過在服務中啓動記錄並調用startService()來完成此操作。 通過這種方式,即使開始調用startService()的Activity已關閉,錄製仍將繼續。