2016-12-01 118 views
0

我使用AudioRecord來錄製音樂,但是當我錄製它時使用手機麥克風。 我該如何強迫他使用耳機的頻道?Android force AudioRecord使用耳機麥克風

我用這個代碼:

int minSize = AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT); 
     AudioRecord ar = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, 8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, minSize); 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      recorder[0] = false; 
     } 
    }, timeInSecondsToRecord * 1000); 

    short[] buffer = new short[minSize]; 
    ar.startRecording(); 
     Log.d("Started","Reording"); 
    while (recorder[0]) { 
     ar.read(buffer, 0, minSize); 
     for (short s : buffer) { 
      if (s>1000) 
      System.out.println("signalVal=" + s); 
     } 
    } 
     Log.d("Finished","Reording"); 
    ar.stop(); 

謝謝

回答

1

您可以使用AudioManager.isWiredHeadsetOn()檢查,如果耳機在插入或沒有。如果上述值爲false,則不執行任何操作或任何您想要執行的操作。而且您首先需要獲得許可:MODIFY_AUDIO_SETTINGS

希望這會有所幫助。 :)

+0

沒有幫助,當我記錄的記錄仍然是從手機內置揚聲器。 – Daffa

+0

@Daffa你讀過android doc文件嗎?不知道它是否會幫助你,但這裏是鏈接[鏈接](https://developer.android.com/reference/android/media/AudioRecord.html) – Dhruv

+0

我已閱讀文檔,並沒有找到解決問題的方法。即使我更改了通道參數 – Daffa