---
title: Azure Communication Services(再) Data Channel API使うと色々できそうです。
tags:  #mixed reality #xrmtg #mrtk3 #unity #hololens #azure  
author: [Miyaura](https://convert.docswell.com/user/m-taka596)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/KE49Z3PMJ1.jpg?width=480
description: XRミーティング 2024/05/15【AR/CR/MR/SR/VR】(https://osaka-driven-dev.connpass.com/event/317795/)登壇資料。 Azure Communication Services の音声とビデオ会議の際に利用できるData Channel APIについての紹介。 先月紹介したHoloLens 2用のサンプルアプリを改造し、ＭＲで空間にオブジェクトを表示＆参加者同士でオブジェクトの操作を可能にする機能をData Channel APIで実現した話。 HoloLens 2同士でACRを使った会議を行う際に空間に表示されたオブジェクトのtransformを同期化してインタラクティブな会議を実施できるか検証しました。 実際の動画は以下のxで投稿。 https://x.com/takabrz1/status/1790754122767224873
published: May 15, 24
canonical: https://convert.docswell.com/s/m-taka596/5RXVRG-XRMTG-ACS-Sync-ObjectManipulation-20240515
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/KE49Z3PMJ1.jpg)

Azure Communication Services(再)
Data Channel API使うと色々できそうです。
2024/05
XRミーティング
@takabrz1
Takahiro Miyaura


# Page. 2

![Page Image](https://bcdn.docswell.com/page/L71KR19YEG.jpg)

Microsoft MVP for Mixed Reality 2018-2024
XRは趣味です
宮浦 恭弘 (Miyaura Takahiro)
◼ 大阪駆動開発(とHolomagicians)コミュニティに生息
◼ HoloLens日本販売してからxR系技術に取組む
◼最近は
✓
✓
Mixed Reality Toolkit v3.0.0(GAされた！)
Snapdragon Spacesとか戯れている。
◼ 新しい技術や、MRに使えそうな技術を調べる
技術Tips : https://qiita.com/miyaura
https://zenn.dev/miyaura
@takabrz1
※よかったらこれを機にお知り合いになってください


# Page. 3

![Page Image](https://bcdn.docswell.com/page/G7WD18Q1E2.jpg)

今日は先月に引続き
Azure Communication Serviceについて
@takabrz1
Takahiro Miyaura


# Page. 4

![Page Image](https://bcdn.docswell.com/page/4JZGP8WX73.jpg)

先月はこんな話をしました。
独自のカスタムアプリに容易に導入できる
○コミュニケーション手段に関する機能
✓音声及びビデオによる通話
✓リッチテキストチャット
✓SMS
✓電子メール
○TeamsやMicrosoft 365との連携
✓Teamsとの相互運用
✓ Teams会議にカスタムアプリからミーティング
✓Microsoft Graph APIにより組織やoutlook予定表等を活用できる
2024/4/17
Copyright © 2024 Takahiro Miyaura
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/YE6YMPGPJV.jpg)

今日の目次
Azure Communication Servicesについて
あれが作られそうです！
1. Azure Communication Servicesの概要
2. Data Channel APIの話
3. Demo（収録済）
4. まとめ
2024/4/17
Copyright © 2024 Takahiro Miyaura
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/GE5GZKVPE4.jpg)

Azure Communication Services概要
@takabrz1
Takahiro Miyaura


# Page. 7

![Page Image](https://bcdn.docswell.com/page/972YRW3Z7R.jpg)

Azure Communication Services
概要
マルチチャネルコミュニケーション実現のためのサービス
○ 音声、ビデオ、チャット、テキスト メッセージ/SMS、
メールなどのコミュニケーション手段を利用可能
○ ライブラリが提供されており、双方向通信など専門家でな
くてもアプリに機能を実装可能
○ 他のサービスとの連携(M365, Teams等)のサポート
Web-RTCといったローレベルでのアプリ開発は不要で
様々なコミュニケーション手段を実現することが可能
2024/4/17
Copyright © 2024 Takahiro Miyaura
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/DJYGDL1NJM.jpg)

Azure Communication Services
サービスの構成
Rest APIとSDKで利用する仕組み
○ Calling SDK（※今回利用）
○ Call Automation SDK
○ Chat SDK
○ SMS SDK
○ e-Mail SDK
○ UI Library
Node.jsで作られたUIライブラリ
Web-RTCといったローレベルでのアプリ開発は不要で
様々なコミュニケーション手段を実現することが可能
2024/4/17
Copyright © 2024 Takahiro Miyaura
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/V7NG642VE8.jpg)

Azure Communication Services
Azure Communication Services Calling Unity SDK
Unity向けのSDKがありHoloLens 2等で利用できる
【公式クイックスタートあり】
クイック スタート:音声通話をアプリに追加する
https://learn.microsoft.com/ja-jp/azure/communication-services/quickstarts/voice-video-calling/getting-started-with-calling?wt.mc_id=WDIT-MVP-5003104&amp;tabs=uwp&amp;pivots=platform-unity
クイックスタート: アプリに 1 対 1 のビデオ通話を追加する
https://learn.microsoft.com/ja-jp/azure/communication-services/quickstarts/voice-video-calling/get-started-with-video-calling? wt.mc_id=WDIT-MVP-5003104&amp; pivots=platform-unity
2024/4/17
Copyright © 2024 Takahiro Miyaura
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/YJ9WLQ1VJ3.jpg)

今日は音声とビデオ会議（Calling SDK）
で使えるとても便利なAPIを紹介
これ使うと。。。
@takabrz1
Takahiro Miyaura


# Page. 11

![Page Image](https://bcdn.docswell.com/page/GJ8NXG44ED.jpg)

Azure Communication Services
Calling SDKによる会議実施時
音声やビデオ会議に関する機能を提供するライブラリ
User A
ユーザアクセストークン
の生成要求
ユーザアクセストークン
の生成要求
アクセストークン
アクセストークン
ミーティングに参加
ミーティングに参加
アクセストークン
ユーザ情報
ビデオ、画面、音声データ
アクセストークン
ユーザ情報
Azure
Communication
Services
ビデオ、画面、音声データ
他参加者のデータ
ストリーミング配信
他参加者のデータ
ストリーミング配信
2024/4/17
User B
Copyright © 2024 Takahiro Miyaura
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LJLP8G6VER.jpg)

Azure Communication Services
Data Channel API
会議中の音声、ビデオ以外のリアルタイムデータ通信用API
任意のデータ
User A
2024/4/17
他参加者のデータ
ストリーミング配信
任意のデータ
Azure
Communica
tion
Services
Copyright © 2024 Takahiro Miyaura
他参加者のデータ
ストリーミング配信
User A
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/47M46Q5NEW.jpg)

Azure Communication Services
Data Channel API仕様
○ 送信は自分以外を対象
○ 送信相手を指定可能(Max:64名)
✓ （指定なしで本人以外全員）
○ チャネルIDによりデータの用途を分類可能
○ 1通信あたり 32Kbまで（それ以上は分割送信）
○ 通信品質の設定が可能
✓ 極力意向に沿えるよう頑張る方式
✓ 設定項目：帯域、優先度、信頼度(送信順保証/未保証)
✓ 帯域制限(現在)
 信頼度の高いチャンネル (Durable): 64 kbps
 信頼度の低いチャンネル (Lossy): 512 kbps
 高優先度で信頼性の低いチャネル: 200 kbps
2024/4/17
Copyright © 2024 Takahiro Miyaura
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/P7RWP834E9.jpg)

Azure Communication Services
Data Channel API
会議中の音声、ビデオ以外のリアルタイムデータ通信用API
Data Channelの有効化
Data Channelの有効化
DataChannelReceiverの提供
送信用チャネルを開く
データ受信通知
（DataChannelReceiver経由）
User A
送信側
データ送信
Azure
Communication
Services
データ取得(Pop)
User B
受信側
データ取得
任意のチャネル番号を指定しバイナリデータを送受信
2024/4/17
Copyright © 2024 Takahiro Miyaura
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/PJXP384ZEX.jpg)

Azure Communication Services
Data Channel API – 送信側の実装
会議中の音声、ビデオ以外のリアルタイムデータ通信用API
DataChannelCallFeature dataChannelCallFeature
= call.Features.DataChannel; //callはCallClient
Data Channelの有効化
送信用チャネルを開く
User A
送信側
データ送信
DataChannelSenderOptions options
= new DataChannelSenderOptions();
options.ChannelId = 1000; //チャネル番号
options.BitrateInKbps = 32; //利用帯域
options.Priority = DataChannelPriority.Normal; //優先度
options.Reliability = DataChannelReliability.Lossy; //信頼性
var participants
= new List&lt;CallIdentifier&gt; { /* identifier1, identifier2, ... */ };
options.Participants = participants.AsReadOnly();
DataChannelSender sender
= dataChannelCallFeature.GetDataChannelSender(options);
sender.SendMessage(msgData); //msgDataはbyte[]
2024/4/17
Copyright © 2024 Takahiro Miyaura
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/3JKDYKZV7D.jpg)

Azure Communication Services
Data Channel API
会議中の音声、ビデオ以外のリアルタイムデータ通信用API
DataChannelCallFeature dataChannelCallFeature
= call.Features.DataChannel; //callはCallClient
Data Channelの有効化
dataChannelCallFeature.ReceiverCreated
+= (sender, args) =&gt; {
DataChannelReceiver receiver = args.Receiver;
DataChannelReceiverの提供
//データ受信時に処理するイベントを登録
receiver.MessageReceived += MessageReceivedHandler;
}
データ取得(Pop)
void MessageReceivedHandler(object sender,
PropertyChangedEventArgs args) {
if (sender is DataChannelReceiver receiver) {
if (receiver.ChannelId == 1000 ) {
DataChannelMessage message = receiver.ReceiveMessage();
byte[] data = message.Data;
}}}
2024/4/17
データ受信通知
（DataChannelReceiver経由）
Copyright © 2024 Takahiro Miyaura
User B
受信側
データ取得
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/LE3R9ZXQ75.jpg)

これ（Data Channel API）が先月紹介した
Unity用のCalling SDKでも使えるんですよ
Demo
2024/4/17
Copyright © 2024 Takahiro Miyaura
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/8EDYGR2WEG.jpg)

なのでこんなことができるようになります
懐かしくないですか？
そう、なんか以前のHololens用Meshアプリっぽい
2024/4/17
Copyright © 2024 Takahiro Miyaura
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/V7P63W1XJ8.jpg)

まとめ
2024/4/17
Copyright © 2024 Takahiro Miyaura
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/2JV348Y3EQ.jpg)

今日のまとめ
引続きAzure Communication Servicesの調査をしました。
Data Channel API使いこなすと面白そうです。
1. Azure Communication Servicesの概要
✓
マルチチャネルコミュニケーション実現のためのサービス
2. Data Channel APIの話
✓ 音声とビデオ通話(会議)でバイナリデータのリアルタイム通信用API
3. Demo
✓ HoloLens用ACSアプリで空間内のオブジェクト操作を同期してみた
参加者の位置情報、空間アンカー等を仕込めば
遠隔地でデジタル情報の同期、RGBカメラ共有等を駆使した会議ができるかも
2024/4/17
Copyright © 2024 Takahiro Miyaura
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/5EG3159Y7L.jpg)

大阪駆動開発
関西を中心に、IT系のおもしろそうなことを
楽しんでやるコミュニティ


