Swift
セッションイベントによるオーディオコントロール
最後に、Vonage セッションのデリゲート・メソッドを使用して、着信音を処理します。動画を公開した後 doPublish メソッドが着信音開始のトリガーとなる。自己加入ストリームが接続すると subscriberDidConnectToStream メソッドは着信音を停止します。
extension VonageVideoManager: OTPublisherDelegate {
func publisher(_ publisher: OTPublisherKit, streamCreated stream: OTStream) {
print("Publishing")
// play the ringtone for 10 seconds , it is fun...
// doSubscribe method will stop it later
DispatchQueue.main.asyncAfter(deadline: .now() + 10) {
self.doSubscribe(stream)
}
}
func publisher(_ publisher: OTPublisherKit, streamDestroyed stream: OTStream) {
print("publisher \(publisher) streamDestroyed \(stream)")
if let subStream = subscriber?.stream, subStream.streamId == stream.streamId {
cleanupSubscriber()
}
cleanupPublisher()
}
func publisher(_ publisher: OTPublisherKit, didFailWithError error: OTError) {
print("publisher didFailWithError \(error)")
cleanupPublisher()
}
}
extension VonageVideoManager: OTSubscriberDelegate {
func subscriberDidConnect(toStream subscriberKit: OTSubscriberKit) {
print("subscriberDidConnectToStream (\(subscriber?.stream?.connection.connectionId ?? ""))")
// Stop ringtone from playing, as the subscriber will connect shortly
myAudioDevice?.stopRingtone()
guard let view = self.subscriber?.view else { return }
subView = AnyView(Wrap(view))
}
func subscriber(_ subscriber: OTSubscriberKit, didFailWithError error: OTError) {
print("Subscriber failed: \(error.localizedDescription)")
}
}
カスタムオーディオドライバー
カスタムオーディオドライバーを使用して、パブリッシャーとサブスクライバーのストリームオーディオをカスタマイズする方法を説明します。カスタムオーディオドライバは、独自のオーディオファイルを再生したり、SDKが提供するライブビデオチャットのデフォルトの動作以外のことを行う場合に使用します。
手順
1
はじめに2
はじめに3
新規プロジェクトの作成4
Vonage Video SDKの追加5
認証の設定6
概要7
カスタムオーディオドライバークラスの作成8
着メロ再生」ロジックの実装9
着信音停止」ロジックの実装10
Vonage Video Managerとの統合11
セッションイベントによるオーディオコントロール12
仕組み13
結論