本文にスキップする
Version: 7.0

オーディオレシーバー

オーディオレシーバー機能を利用すると、実際のオーディオストリームに影響を与えずにオーディオデータを取得できます。アプリケーションでは、この機能を利用してオーディオデータのコピーを受け取り、さまざまな用途に使用できます。

対応する通話タイプSDKの最低バージョン
1対1通話、グループ通話(カンファレンス)PlanetKit 7.0
Note

オーディオレシーバーを通じて取得したオーディオデータは、VQE制御が適用される前のオーディオストリームです。

活用事例

オーディオレシーバーの主な活用例は次のとおりです。

  • オーディオ分析と転写(音声→テキスト変換)
  • 音声アクティビティ検出(VAD)
  • オーディオ品質のモニタリング
  • 通話分析と指標の収集
  • リアルタイムのオーディオ可視化とレベルメータリング
  • 通話オーディオをファイルとして録音

実装段階

オーディオレシーバー機能を実装するには、次の手順に従います。

1対1通話

オーディオレシーバーの実装

1対1通話のオーディオデータを受信するためにICallAudioReceiverを継承するクラスを作成します。

#include "PlanetKit.h"
#include "IPlanetKitCallAudioReceiver.h"

class AudioDataReceiver : public PlanetKit::ICallAudioReceiver {
public:
void OnAudio(const PlanetKit::SAudioData& sAudioData) override {
// Access audio data from SAudioData structure:
// - sAudioData.unAudioDataSamplingRate: Sampling rate
// - sAudioData.unAudioDataSampleCount: Number of samples
// - sAudioData.eAudioDataSampleFormat: Sample format
// - sAudioData.ucBuffer: Pointer to audio data
// - sAudioData.unBufferSize: Size of audio data in bytes

// Use the audio data for your use case

// Note: Copy data if you need it beyond this callback
}
};

オーディオレシーバーの設定

オーディオデータの受信を開始するには、PlanetKitCallインスタンスにレシーバーを登録します。

// Create receiver instances
PlanetKit::ICallAudioReceiverPtr pMyAudioReceiver = PlanetKit::MakeSharedPtr<AudioDataReceiver>();
PlanetKit::ICallAudioReceiverPtr pPeerAudioReceiver = PlanetKit::MakeSharedPtr<AudioDataReceiver>();

// Register receivers
m_pCall->RegisterMyAudioReceiver(pMyAudioReceiver); // Local user's audio
m_pCall->RegisterPeerAudioReceiver(pPeerAudioReceiver); // Remote peer's audio

オーディオレシーバーの解除

オーディオデータの受信を中止するには、レシーバーの登録を解除します。

m_pCall->DeregisterMyAudioReceiver(pMyAudioReceiver);
m_pCall->DeregisterPeerAudioReceiver(pPeerAudioReceiver);

グループ通話

オーディオレシーバーの実装

グループ通話の音声データを受信するためにIConferenceAudioReceiverを継承するクラスを作成します。

#include "PlanetKit.h"
#include "IPlanetKitConferenceAudioReceiver.h"

class ConferenceAudioDataReceiver : public PlanetKit::IConferenceAudioReceiver {
public:
void OnAudio(const PlanetKit::SAudioData& sAudioData) override {
// Access audio data from SAudioData structure:
// - sAudioData.unAudioDataSamplingRate: Sampling rate
// - sAudioData.unAudioDataSampleCount: Number of samples
// - sAudioData.eAudioDataSampleFormat: Sample format
// - sAudioData.ucBuffer: Pointer to audio data
// - sAudioData.unBufferSize: Size of audio data in bytes

// Use the audio data for your use case

// Note: Copy data if you need it beyond this callback
}
};

オーディオレシーバーの設定

オーディオデータの受信を開始するには、PlanetKitConferenceインスタンスにレシーバーを登録します。

// Create receiver instances
PlanetKit::IConferenceAudioReceiverPtr pMyAudioReceiver = PlanetKit::MakeSharedPtr<ConferenceAudioDataReceiver>();
PlanetKit::IConferenceAudioReceiverPtr pPeerAudioReceiver = PlanetKit::MakeSharedPtr<ConferenceAudioDataReceiver>();

// Register receivers
m_pConference->RegisterMyAudioReceiver(pMyAudioReceiver); // Local user's audio
m_pConference->RegisterPeersAudioReceiver(pPeerAudioReceiver); // Mixed audio from all peers

オーディオレシーバーの解除

オーディオデータの受信を中止するには、レシーバーの登録を解除します。

m_pConference->DeregisterMyAudioReceiver(pMyAudioReceiver);
m_pConference->DeregisterPeersAudioReceiver(pPeerAudioReceiver);

関連API

オーディオレシーバー機能に関連するAPIは以下のとおりです。

1対1通話

グループ通話