MacOSでシステムオーディオを共有

最終更新日:2021-09-02 11:21:35

    シーンの弱点とソリューション

    画面共有などのユースケースにおいて、システムオーディオを相手に共有する必要がよくありますが、Mac PCではデフォルトのサウンドカードがシステムオーディオのキャプチャをサポートしていないため、Mac PCでシステムオーディオを共有するのは比較的困難です。このため、TRTCはMacでシステム音声をレコーディングする機能を提供し、そのシーンのニーズを満たします。具体的な接続手順は、以下をご参照ください。

    統合の説明

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

    SDKはTRTCPrivilegedTaskライブラリを使用してroot権限を取得する必要があるため、バーチャルサウンドカードプラグインTRTCAudioPlugin.driverをシステムディレクトリ/Library/Audio/Plug-Ins/HALにインストールします。

    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をApp Bundleの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];
    

    統合のまとめ

    • TRTCは、Macではバーチャルサウンドカードプラグイン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. システムのオーディオサービスを再起動します。

    システムのオーディオサービスbashの再起動

    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機能を無効化し、root権限を取得しなければ、AppをMac App Storeに公開できない可能性があります。詳細は、App Store Review Guidelinesをご参照ください。
      App Storeに公開するか、またはSandbox機能を使用する場合、バーチャルオーディオプラグインを手動インストールする方法を推奨します。