パソコンサウンドの共有
シーンのペインポイントとソリューション
画面共有などのユースケースでは、システムオーディオを相互に共有する必要があります。Macコンピュータのデフォルトのサウンドカードはシステムオーディオのキャプチャをサポートしていないため、Macコンピューターでシステムオーディオを共有することは困難です。これに基づいて、TRTCは、このシーンのニーズを満たすためにMac側でシステムオーディオをレコーディングする機能を提供します。具体的なアクセス手順は次のとおりです。
統合の説明
手順1:TRTCPrivilegedTaskライブラリの統合
SDKは、TRTCPrivilegedTaskライブラリを使用して、仮想サウンドカードプラグインTRTCAudioPlugin.driverをシステムディレクトリ
/ Library / Audio / Plug-Ins/HAL
にインストールするためのroot権限を取得してください。1. 現在のプロジェクトのルートディレクトリの
Podfile
ファイルを開き、以下のコンテンツを追加します:platform :osx, '10.10'target 'Your Target' dopod '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
を追加します。
手順2:App Sandbox機能の無効化
Appのentitlements説明ファイルから、App Sandboxエントリを削除します。
手順3:仮想サウンドカードプラグインのパッケージ化
TRTCPrivilegedTaskライブラリの統合とApp Sandbox機能の無効化の後、システムオーディオレコーディング機能を初めて使用する場合、SDKは仮想サウンドカードプラグインをネットワークからダウンロードしてインストールします。このプロセスをアクセラレーションする場合は、
TXLiteAVSDK_TRTC_Mac.framework
のPlugInsディレクトリにある仮想サウンドカードプラグインTRTCAudioPlugin.driver
をAppBundleのResourcesディレクトリにパッケージ化できます。下図のとおりです:
またはApp BundleのPlugInsディレクトリにコピーします。下図のとおりで:
手順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/HALsudo 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機能を使用したりする場合は、仮想オーディオプラグインを手動でインストールするスキームを選択することをお勧めします。