2013-03-14 17 views
6

gibi ikinci mikrofon android'e nasıl erişilir Bir çok akıllı telefonun artık birden fazla mikrofonu var. Ses girişi için ve çevre gürültüsünü azaltmak için bir tane.Galaxy 3

İki mikrofonun sinyaline bağımsız olarak nasıl erişebilirim diye merak ediyorum. Ya da mikrofondan birini kapatır mısın?

Herhangi bir düşünce veya yorum kabul edilir. Çok teşekkürler.

+0

İki mikrofonun sinyallerini başarıyla ayırdım. Kullandığım yöntem Michael sağlandı. Dizideki 0,2,4, alttaki mikrofon ve 1,2,5 ... üstteki mikrofon. – Foreverniu

+0

Kodunuzu Michael'ın cevabını kullanarak mikrofonları ayırarak paylaşmak ister misiniz? Aynı sorunu yaşıyorum. Teşekkürler – nLL

+0

@Foreverniu: Kod snippet'ini bunun için paylaşmanız mümkün mü? –

cevap

10

Özellikle Galaxy S3 aşina değilim ama şu Birlikte çalıştığım cihazların çoğunluğu için de geçerlidir:

birincil kullanın veya isteyip seçme güvenilir bir yolu yoktur
  • mono kayıt için ikincil mikrofon. MIC AudioSource genellikle, mono kayıt yaparken birincil mikrofon anlamına gelir ve CAMCORDER kaynağı ,, ikincil mikrofon anlamına gelir. Ancak bunun için garanti yoktur, çünkü mikrofonların fiziksel yerleşimi.

  • Mono olarak kayıt yapmak, diğer mikrofonu etkin bir şekilde kapatır ve gürültü azaltma işlemi ne yapılırsa yapılsın, yalnızca bir mikrofondan gelen sinyali kullanır (böylece dinamik gürültünün az veya hiç olmaması gerekir).
    Yukarıdakilerden bir istisnası, her iki mikrofonun da önceden bağlandığını ve gürültü azaltma işlevini etkinleştirmek için sesli arama sırasında kaydederseniz olabilir.
    VOICE_RECOGNITION AudioSource'u kullanırsanız başka bir istisna olabilir, çünkü bazı satıcılar bu kullanım durumunda bir veya daha fazla ilave mikrofon kullanarak sinyal üzerinde gürültü bastırma uygular. 2 mikrofon cihazındaki her iki mikrofonun stereo kayıtlarına kaydetme

  • . Sol kanal, bir mikrofonun girişini içerir ve sağ kanal, diğer mikrofonun girişini içerir, ancak kanalların hangi fiziksel miktara karşılık geldiğine dair bir garanti yoktur (yine, yerleşime göre değişir).

+0

Teşekkürler. Bence cevabın harika. Tek bir sorum daha var: Eğer ENCODING_PCM_16BIT gibi stereo kayıtlarını kullanırsam, her bir kanalın sinyalini nasıl ayıracağınızı biliyor musunuz? Android'den sinyal almak için audiorecord kullanıyorum. Gerçekten yardımın için teşekkürler. – Foreverniu

+4

PCM_16BIT sadece her numunenin çözünürlüğünü etkiler. Stereo almak için kayıt için iki kanal talep etmelisiniz. Kanalları ayırmak için, PCM akışından alternatif örnekleri okuyun ('AudioRecord' sınıfını kullandığınızı varsayarak). Yani, 0,2,4,6 ... ofsetinizde kısa [] 'sol kanal örneklerini içerir ve 1,3,5,7 ofsetler ... doğru kanal örneklerini içerir. – Michael

+0

Cevabınız müthiş. Sadece bir onay: Kayıt için iki kanal gerektirmek için aşağıdaki kod doğru mu? kaydedici = yeni AudioRecord (AudioSource.MIC, iSampleRate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, iAudioBufferSize); Teşekkürler. – Foreverniu

İlgili konular