2016-05-11 50 views
0

想寫一個應用程序,從麥克風讀取一個例子,在那裏我,在相同的應用程序,並將結果寫入/緩衝器專心於我自己的文件(在一個單獨的線程)。相信我,我已Google搜索,直到我的手指麻木。但是我對整個「回調」部分存在問題。尋找使用AudioRecord

無論是在onPeriodicNotification或onMarkerReached一部分,我似乎無法得到它的權利。不是爲了給我寫信給任何人,但如果我能在網上找到合適的shell,我可以自己做。

所以,如果有人知道一個很好的例子,請。

回答

-1

做了一個簡單的聲音管理器中,您可以錄製聲音:

public class SoundManager { 

private static final String TAG = SoundManager.class.getSimpleName(); 
public boolean isRecording = false; 
private MediaRecorder recorder; 
private String audioFileName = "sound"; 

private Context mContext; 
private String storePath; 

public SoundManager(Context context) { 
    this.mContext = context; 
} 

public void onRecord(boolean toStart) { 
    if (toStart) { 
     try { 
      startRecording(); 
      isRecording = true; 
     } catch (IOException e) { 
      Log.d("Tag", e.toString()); 
     } 
    } else { 
     stopRecording(); 
    } 
} 

private void startRecording() throws IOException { 
    stopRecording(); 
    audioFileName = UUID.randomUUID().toString(); 
    storePath = new File(mContext.getExternalFilesDir(null), "/images/"+ audioFileName+".3gp").getAbsolutePath(); 
    recorder = new MediaRecorder(); 
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    recorder.setOutputFile(storePath); 

    recorder.prepare(); 
    recorder.start(); 
} 

private void stopRecording() { 
    if (isRecording && recorder != null) { 
     try { 
      recorder.stop(); 
      recorder.release(); 
     } catch (RuntimeException e) { 
      recorder.release(); 
      Log.d(TAG, e.toString()); 
     } 

     recorder = null; 
     isRecording = false; 
    } 
} 

public File getAudioOutputPath() { 
    return new File(storePath); 
} 

}

用途:

  1. 開始記錄:soundManager.onRecord(true);
  2. 停止錄音:soundManager.onRecord(false);
  3. 得到聲音文件路徑:soundManager.getAudioOutputPath();

添加音頻允許在你的清單:

<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

`

+0

我很感激,但我希望能夠做到從緩衝區中是搶音頻並將其自己寫入文件,因此試圖學習AudioRecord,該AudioRecord具有該回調例程。 我只是不出來,所以一直在尋找的代碼在網上,我會再從學習,並從那裏建立的一個例子。 –

+0

很抱歉聽到這個消息。你能告訴我你爲什麼在錄音時需要緩衝區嗎?如果你需要查看某些東西,那麼我有辦法做到這一點。 – Sayem

+0

只是希望能夠自己寫作。無論是實時分解還是實時分析。我所有的谷歌都指向AudioRecord類。就在學習之初,它正在尋找一個在線示例。 –