2016-12-06 35 views
2

現在、特定のオーディオ入力デバイスが使用されているかどうかを判断するために、macOSでCoreAudioを使用しています。私は、そのデバイスで何が起こっているのかについてもう少し詳しい情報を見つけようとしていますが、その方法に関する情報を見つけるのには苦労しています。オーディオデバイスを使用しているアプリケーションを特定します

1)現在、特定のオーディオ入力デバイスを使用しているアプリケーションを見つけることはできますか?

2)アプリケーションがオーディオデバイス(入力または出力)を使用していて、特定のアプリケーションでデバイスが現在ミュートされているかどうかを確認することはできますか?

おかげ

答えて

2

アプリケーションはkAudioDevicePropertyHogModeを介して(すなわち、それへの排他的アクセスを有する)デバイスをhoggedた場合、そのプロパティに関連pid_tの値がホギングプロセスのプロセスID(または-1場合デバイスがホールドされていない)。

少なくとも、出力デバイスでは、複数のアプリケーションがデバイスを共有でき、さまざまなオーディオストリームが混在します。その場合、私が知っている最良の方法は、デバイスが使用中であるかどうかを示すkAudioDevicePropertyDeviceIsRunningSomewhereをチェックすることですが、どのプロセスがそれを使用しているかはわかりません。

質問2の場合、ミュートはオーディオデバイスのプロパティです。具体的にはkAudioDevicePropertyMuteです。アプリケーションがそのプロパティをtrueに設定すると、そのデバイスはすべてのアプリケーションに対してミュートされます。

関連する問題