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

オーディオフック

PlanetKitは、オーディオフック(audio hooking)という機能を提供します。これは、Planet Cloudが相手にオーディオを転送する前にオーディオデータを取得(フック)する機能です。ローカルユーザーの音声を変えたり、オーディオデータを音声認識に活用したりする用途で使用できます。

対応する通話タイプSDKの最低バージョン
1対1通話5.5

概要

オーディオフック機能を使用するためのメソッドは、PlanetKitCallクラスで提供しています。

オーディオフックの有効化

オーディオフックを有効にするには、PlanetKitCallHookedAudioDelegateの実装を引数としてenableHookMyAudio()を呼び出します。

オーディオフックが有効になると、didHookイベントを通じてPlanetKitHookedAudioオブジェクトを受け取ることができます。

オーディオデータの修正(オプション)

オーディオデータを修正するには、PlanetKitHookedAudiodataを他のDataオブジェクトに設定してください。

Note

PlanetKitHookedAudioクラスでは、未加工(raw)オーディオデータ(data)のみ修正できます。channelsampleCountsampleRatesampleTypeseqのようなメタデータは修正できません。dataを修正する際は、必ずメタデータが示す形式を維持する必要があります。

オーディオデータの復元

フックしたオーディオデータを元に戻すには、PlanetKitHookedAudioオブジェクトを引数としてputHookedMyAudioBack()を呼び出します。

Warning

オーディオフックを有効にした後は、オーディオデータの修正有無にかかわらず、フックしたオーディオデータを必ず元に戻す必要があります。そうしないと、相手にオーディオが転送されません。

オーディオフックの無効化

オーディオフックを無効にするには、disableHookMyAudio()を呼び出します。

サンプルコード

以下のサンプルコードは、音声を変えるためにオーディオフック機能を使用する方法を示しています。

// Get instance of PlanetKitCall
var call: PlanetKitCall?

// Implement audio modifier with PlanetKitCallHookedAudioDelegate
class HookedAudioModifier: PlanetKitCallHookedAudioDelegate {
func didHook(_ call: PlanetKitCall, audio: PlanetKitHookedAudio) {
// process `audio.data` as necessary

if !call.putHookedMyAudioBack(audio: audio) {
NSLog("putHookedMyAudioBack returned false")
}
}
}

// HookedAudioModifier object
let modifier = HookedAudioModifier()

// Method to enable audio hook
func enableAudioHook(call: PlanetKitCall, modifier: HookedAudioModifier) {
call.enableHookMyAudio(delegate: modifier) { success in
if success {
NSLog("Audio hook enabled successfully")
} else {
NSLog("Failed to enable audio hook")
}
}
}

// Method to disable the audio hook
func disableAudioHook(call: PlanetKitCall) {
call.disableHookMyAudio() { success in
if success {
NSLog("Audio hook disabled successfully")
} else {
NSLog("Failed to disable audio hook")
}
}
}

関連API

オーディオフックに関連するAPIは、以下のとおりです。

クラス/プロトコル

メソッド/属性

イベント