パソコンサウンドの共有

シーンのペインポイントとソリューション

画面共有などのユースケースでは、システムオーディオを相互に共有する必要があります。Macコンピュータのデフォルトのサウンドカードはシステムオーディオのキャプチャをサポートしていないため、Macコンピューターでシステムオーディオを共有することは困難です。これに基づいて、TRTCは、このシーンのニーズを満たすためにMac側でシステムオーディオをレコーディングする機能を提供します。具体的なアクセス手順は次のとおりです。

統合の説明

手順1:TRTCPrivilegedTaskライブラリの統合

SDKは、TRTCPrivilegedTaskライブラリを使用して、仮想サウンドカードプラグインTRTCAudioPlugin.driverをシステムディレクトリ/ Library / Audio / Plug-Ins/HALにインストールするためのroot権限を取得してください。
CocoaPodsによる統合
手動統合
1. 現在のプロジェクトのルートディレクトリのPodfileファイルを開き、以下のコンテンツを追加します:
platform :osx, '10.10'

target 'Your Target' do
pod 'TRTCPrivilegedTask', :podspec => 'https://pod-1252463788.cos.ap-guangzhou.myqcloud.com/liteavsdkspec/TRTCPrivilegedTask.podspec'
end

2. pod installコマンドを実行し、TRTCPrivilegedTaskライブラリをインストールします。
説明:
プロジェクトのルートディレクトリにPodfileファイルがない場合は、まずpod initコマンドを実行しファイルを新規作成してから、以下の内容を追加してください。
CocoaPodsのインストール方法については、CocoaPods公式サイトインストールの説明をご参照ください。
1. TRTCPrivilegedTaskライブラリをダウンロードします。
2. Xcodeプロジェクトを開き、解凍後のファイルlibPrivilegedTask.aをプロジェクトへインポートします。
3. 実行されるtargetを選択し、Build Phasesアイテムを選択し、Link Binary with Librariesアイテムを展開し、その下の**+**をクリックし、依存ライブラリlibPrivilegedTask.aを追加します。
libPrivilegedTask.a



手順2:App Sandbox機能の無効化

Appのentitlements説明ファイルから、App Sandboxエントリを削除します。
Sandbox



手順3:仮想サウンドカードプラグインのパッケージ化

TRTCPrivilegedTaskライブラリの統合App Sandbox機能の無効化の後、システムオーディオレコーディング機能を初めて使用する場合、SDKは仮想サウンドカードプラグインをネットワークからダウンロードしてインストールします。このプロセスをアクセラレーションする場合は、TXLiteAVSDK_TRTC_Mac.frameworkのPlugInsディレクトリにある仮想サウンドカードプラグインTRTCAudioPlugin.driverをAppBundleのResourcesディレクトリにパッケージ化できます。下図のとおりです:
プラグインのパッケージ化

またはApp BundleのPlugInsディレクトリにコピーします。下図のとおりで:
プラグインのパッケージ化2



手順4:システム音声のキャプチャを開始します

startSystemAudioLoopbackインターフェースを呼び出して、システム音声のキャプチャを開始し、アップリンクオーディオストリームに混合します。インターフェースが実行された後、成功または失敗の結果はonSystemAudioLoopbackErrorを介してコールバックされます。
TRTCCloud *trtcCloud = [TRTCCloud sharedInstance];
[trtcCloud startLocalAudio];
[trtcCloud startSystemAudioLoopback];
ご注意:
TRTCPrivilegedTaskライブラリの統合とApp Sandbox機能の無効化の後、startSystemAudioLoopbackを最初に呼び出す場合は、root権限を取得します。 ユーザーがOKをクリックすると、仮想サウンドカードプラグインが自動的にインストールされます。

手順5:システム音声のキャプチャを停止します

stopSystemAudioLoopbackインターフェースを呼び出して、システム音声のキャプチャを終了します。
TRTCCloud *trtcCloud = [TRTCCloud sharedInstance];
[trtcCloud stopSystemAudioLoopback];

手順6:システム音声のキャプチャボリュームを設定します

setSystemAudioLoopbackVolumeインターフェースを呼び出して、システム音声のキャプチャボリュームを設定します。
TRTCCloud *trtcCloud = [TRTCCloud sharedInstance];
[trtcCloud setSystemAudioLoopbackVolume:80];

統合のまとめ

Mac側では、TRTCは仮想サウンドカードプラグインTRTCAudioPlugin.driverを使用してシステムオーディオをレコーディングします。この仮想サウンドカードプラグインをシステムディレクトリ/Library/Audio/Plug-Ins/HALにコピーし、オーディオサービスを再起動して有効にする必要があります。仮想サウンドカードプラグインが正常にインストールされているかどうかは、Launchpadその他フォルダにあるオーディオMIDI設定アプリケーションで確認できます。このアプリケーションのデバイスリストに「TRTC Audio Device」という名前のデバイスがある場合は、TRTCの仮想サウンドカードプラグインが正常にインストールされていることを示します。
前の手順でのTRTCPrivilegedTaskライブラリの統合App Sandbox機能の無効化は、仮想サウンドカードプラグインを自動的にインストールするためのTRTC SDKのroot権限を提供するためのものです。TRTCPrivilegedTaskライブラリが統合されておらず、App Sandbox機能が保持されている場合、SDKは仮想サウンドカードプラグインを自動的にインストールしませんが、仮想サウンドカードプラグインがシステムにインストールされている場合、システムオーディオレコーディング機能は引き続き正常に使用できます。
説明:
上記のスキームに加えて、仮想サウンドカードプラグインを手動でインストールして、この機能を統合することもできます。
1. TXLiteAVSDK_TRTC_Mac.frameworkのPlugInsディレクトリにあるTRTCAudioPlugin.driverをシステムディレクトリ/Library/Audio/Plug-Ins/HALにコピーします。
2. システムのオーディオサービスを再起動します。
sudo cp -R TXLiteAVSDK_TRTC_Mac.framework/PlugIns/TRTCAudioPlugin.driver /Library/Audio/Plug-Ins/HAL
sudo kill -9 `ps ax|grep 'coreaudio[a-z]' |awk '{print $1}'`


注意事項

App Sandbox機能を無効にすると、Appで取得したユーザーパスが変更されます。NSSearchPathForDirectoriesInDomainsなどのシステムメソッドによって取得された ~/Documents~/Libraryなどのディレクトリは、サンドボックスディレクトリからユーザーディレクトリ/Users/ユーザー名/Documents/Users/ユーザー名/Libraryに切り替えられます。
TRTCPrivilegedTaskライブラリを統合すると、AppがMac App Storeにリストされなくなる可能性があります。SDKが仮想サウンドカードプラグインを自動的にインストールする場合、App Sandbox機能を閉じてルート権限を取得する必要があります。AppがMac App Storeにリストされなくなる可能性があります。詳細については、App Store Review Guidelinesをご参照ください。App Storeにリストしたり、Sandbox機能を使用したりする場合は、仮想オーディオプラグインを手動でインストールするスキームを選択することをお勧めします。