2つ目のスクリプトだけなら動くのですか?
if((audio2 != null)&&(Microphone.devices.Length > 0)){
string devName2 = Microphone.devices[1];
以下が気になりました。
-
Microphone.devices.Length > 0
ですと、Length
が2以上かは保証されません。 -
devName2
は期待通りでしょうか?
Like!
PCにUSBマイクを2つ接続して, それぞれで音声データを分けて取得できるようにしたいです。
C#スクリプトを2つに分けて, それぞれ別のデバイス番号(Microphone番号)で接続するようにしましたが, 片方のマイクのみに接続が偏ります。
void Start()
{
var audio = GetComponent<AudioSource>();
hairetu = new float[samplingRange];
if((audio != null)&&(Microphone.devices.Length > 0)){
string devName = Microphone.devices[0];
audio.clip = Microphone.Start(devName, true, 10, 44100);
audio.Play();
}
}
// Update is called once per frame
void Update()
{
var spectrum = GetComponent<AudioSource>().GetSpectrumData(samplingRange, 0, FFTWindow.Hamming);
string bun = "";
void Start()
{
var audio2 = GetComponent<AudioSource>();
hairetu = new float[samplingRange];
if((audio2 != null)&&(Microphone.devices.Length > 0)){
string devName2 = Microphone.devices[1];
audio2.clip = Microphone.Start(devName2, true, 10, 44100);
audio2.Play();
}
}
// Update is called once per frame
void Update()
{
var spectrum = GetComponent<AudioSource>().GetSpectrumData(samplingRange, 0, FFTWindow.Hamming);
string bun2 = "";
一つのゲームシーンに複数の効果音(BGM)をAudioSourceで実装することが可能なため,
理論的には複数マイクの接続も可能なように思われますが、如何なのでしょうか。
どなたか解決方法を教えてください。
2つ目のスクリプトだけなら動くのですか?
if((audio2 != null)&&(Microphone.devices.Length > 0)){
string devName2 = Microphone.devices[1];
以下が気になりました。
Microphone.devices.Length > 0
ですと、Length
が2以上かは保証されません。devName2
は期待通りでしょうか?もしかして、こういうこと?
var audio = GetComponents<AudioSource>() [0];
var audio2 = GetComponents<AudioSource>() [1];