3

短いバージョン: 私はシンセアプリを開発しており、低レイテンシーで Opensl を使用しています。Openslコールバック関数ですべてのオーディオ計算を行っていました(すべきではないことはわかっていますが、とにかく行いました)。現在、計算には nexus 4 で約 75% の CPU 時間がかかるため、次のステップでは、代わりに複数のスレッドですべての計算を実行します。

私が遭遇した問題は、コールバックスレッドが明らかに高い優先度で実行されているのに、新しいスレッドが実行されていないため、オーディオが途切れ始めたことです。より多くの/より大きなバッファーを使用すると、問題は解消されますが、リアルタイムも解消されます。新しいスレッドに高い優先度を設定してもうまくいかないようです。それで、スレッド化された低遅延オーディオを実行することさえ可能ですか、またはそれが機能するためにコールバックですべてを実行する必要がありますか?

256 サンプルのバッファがあり、それは約 5 ミリ秒であり、スレッド スケジューラが私の計算スレッドを実行するのに十分な時間であるはずです。

4

1 に答える 1