Skip to content

Commit a545b48

Browse files
authored
Update media-streaming.md
Add schema, java and csharp links
1 parent d805ee3 commit a545b48

File tree

1 file changed

+61
-4
lines changed

1 file changed

+61
-4
lines changed

articles/communication-services/quickstarts/voice-video-calling/media-streaming.md

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,69 @@ zone_pivot_groups: acs-csharp-java
2121
Get started with using audio streams through Azure Communication Services Media Streaming API. This quickstart assumes you are already familiar with Call Automation APIs to build an automated call routing solution.
2222

2323
::: zone pivot="programming-language-csharp"
24-
[!INCLUDE [](./includes/call-automation-media/)]
24+
[!INCLUDE [Media Streaming with .NET](./includes/call-automation-media/media-streaming-quickstart-csharp.md)]
2525
::: zone-end
2626

2727
::: zone pivot="programming-language-java"
28-
[!INCLUDE [](./includes/call-automation-media/]
28+
[!INCLUDE [Media Streaming with Java](./includes/call-automation-media/media-streaming-quickstart-java.md)]
2929
::: zone-end
3030

31-
## Stop Audio Streaming
32-
Audio streaming will stop automatically when the call is ended or cancelled.
31+
32+
## Message schema
33+
When ACS has received the URL for your WebSocket server, it will create a connection to it. Once ACS has successfully connected to your WebSocket server it will send through the first data packet which contains metadata regarding the incoming media packets.
34+
35+
``` code
36+
/**
37+
* The first message upon WebSocket connection will be the metadata packet
38+
* which contains the subscriptionId and audio format
39+
*/
40+
public class AudioMetadataSample {
41+
public string kind; // What kind of data this is, e.g. AudioMetadata, AudioData.
42+
public AudioMetadata audioMetadata;
43+
}
44+
45+
public class AudioMetadata {
46+
public string subscriptionId // unique identifier for a subscription request
47+
public string encoding; // PCM only supported
48+
public int sampleRate; // 16000 default
49+
public int channels; // 1 default
50+
public int length; // 640 default
51+
}
52+
```
53+
54+
## Audio streaming schema
55+
After sending through the metadata packet, ACS will start streaming audio media to your WebSocket server. Below is an example of what the media object your server will receive looks like.
56+
57+
``` code
58+
/**
59+
* The audio buffer object which is then serialized to JSON format
60+
*/
61+
public class AudioDataSample {
62+
public string kind; // What kind of data this is, e.g. AudioMetadata, AudioData.
63+
public AudioData audioData;
64+
}
65+
66+
public class AudioData {
67+
public string data; // Base64 Encoded audio buffer data
68+
public string timestamp; // In ISO 8601 format (yyyy-mm-ddThh:mm:ssZ)
69+
public string participantRawID;
70+
public boolean silent; // Indicates if the received audio buffer contains only silence.
71+
}
72+
```
73+
74+
Example of audio data being streamed
75+
76+
``` json
77+
{
78+
"kind": "AudioData",
79+
"audioData": {
80+
"timestamp": "2022-10-03T19:16:12.925Z",
81+
"participantRawID": "8:acs:3d20e1de-0f28-41c5-84a0-4960fde5f411_0000000b-faeb-c708-99bf-a43a0d0036b0",
82+
"data": "5ADwAOMA6AD0AOIA4ADkAN8AzwDUANEAywC+ALQArgC0AKYAnACJAIoAlACWAJ8ApwCiAKkAqgCqALUA0wDWANAA3QDVAN0A8wDzAPAA7wDkANkA1QDPAPIA6QDmAOcA0wDYAPMA8QD8AP0AAwH+AAAB/QAAAREBEQEDAQoB9wD3APsA7gDxAPMA7wDpAN0A6gD5APsAAgEHAQ4BEAETARsBMAFHAUABPgE2AS8BKAErATEBLwE7ASYBGQEAAQcBBQH5AAIBBwEMAQ4BAAH+APYA6gDzAPgA7gDkAOUA3wDcANQA2gDWAN8A3wDcAMcAxwDIAMsA1wDfAO4A3wDUANQA3wDvAOUA4QDpAOAA4ADhAOYA5wDkAOUA1gDxAOcA4wDpAOEA4gD0APoA7wD9APkA6ADwAPIA7ADrAPEA6ADfANQAzQDLANIAzwDaANcA3QDZAOQA4wDXANwA1ADbAOsA7ADyAPkA7wDiAOIA6gDtAOsA7gDeAOIA4ADeANUA6gD1APAA8ADgAOQA5wDgAPgA8ADnAN8A5gDgAOoA6wDcAOgA2gDZANUAyQDPANwA3gDgAO4A8QDyAAQBEwEDAewA+gDpAN4A6wDeAO8A8QDwAO8ABAEKAQUB/gD5AAMBAwEIARoBFAEeARkBDgH8AP0A+gD8APcA+gDrAO0A5wDcANEA0QDHAM4A0wDUAM4A0wDZANQAxgDSAM4A1ADVAOMA4QDhANUA2gDjAOYA5wDrANQA5wDrAMsAxQDWANsA5wDpAOEA4QDFAMoA0QDKAMgAwgDNAMsAwgCwAKkAtwCrAKoAsACgAJ4AlQCeAKAAoQCmAKwApwCsAK0AnQCVAA==",
83+
"silent": false
84+
}
85+
}
86+
```
87+
88+
## Stop audio streaming
89+
Audio streaming will automatically stop when the call ends or is cancelled.

0 commit comments

Comments
 (0)