2

PortAudio を使用してオーディオ アプリケーションを作成しようとしていますが、プログラムを実行しようとしたときに他のオーディオ プログラム (通常は Firefox) が実行されていると、次のエラーが発生します。

PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.

明らかに、別のプログラムがサウンドを使用している場合は機能しないため、これにより私のプログラムはかなり役に立たなくなります。これを回避する方法はありますか、それとも PortAudio を使用しないほうがよいですか?

4

1 に答える 1

4

PortAudioがPulseAudioと連携するには、「pulse」という名前のデバイスを選択する必要があります。PulseAudioは、現在最大のLinuxディストリビューションでサウンドカードを共有するために使用されるサウンドサーバーです。エラーメッセージは、カード共有をまったくサポートしていないOSS / dev/dspインターフェイスを使用しようとしていることを示しています。

次のようなコードを使用して、デバイスを一覧表示できます。

for (int i = 0, end = Pa_GetDeviceCount(); i != end; ++i) {
    PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
    if (!info) continue;
    printf("%d: %s\n", i, info->name);
}

次に、ストリームパラメータ内でOpenStreamに正しい番号を指定します。

PortAudiov19が必要であることに注意してください。古いv18はOSSのみをサポートしていました。

于 2010-02-28T17:39:59.877 に答える