Xamarin.Androidでのマイク入力を行おうとしています。
AudioRecoderは以下のように定義していますが、OnPeriodicNotification()が最初に十数回呼ばれるだけでその後呼ばれなくなってしまいます。
考え得る原因として何かアドバイスがいただけたら幸いです。
・StartRecording()後に空読みしても状況は変わりませんでした。
・AudioRecordのコンストラクタにAudioSource.Mic以外のものを渡してもダメでした。
・バッファサイズも変更してみました。
・マニフェストにマイクの使用権限は追加済みです。
Xamarin
1public class とあるクラス 2{ 3 public void とあるメソッド() 4 { 5 int bufSize = AudioRecord.GetMinBufferSize(8000, 6 ChannelIn.Mono, Android.Media.Encoding.Pcm16bit); 7 8 myAR = new AudioRecord(AudioSource.Mic, 8000, 9 ChannelIn.Mono, 10 Android.Media.Encoding.Pcm16bit, bufSize); 11 12 myAR.SetRecordPositionUpdateListener(new OnRecordPositionUpdateListener()); 13 myAR.SetPositionNotificationPeriod(bufSize / 10); 14 myAR.StartRecording(); 15 } 16} 17 18public class OnRecordPositionUpdateListener : Java.Lang.Object, AudioRecord.IOnRecordPositionUpdateListener 19 public void OnPeriodicNotification(AudioRecord myAR) 20 { 21 ・・・・・ 22 23 byte[] audioBuf = new byte[bufSize / 10]; 24 myAR.Read(audioBuf, 0, bufSize / 10); 25 26 ・・・・・ 27 } 28}
あなたの回答
tips
プレビュー