Skip to content

Commit d6a17f2

Browse files
committed
media access and music mode
1 parent 73faeda commit d6a17f2

File tree

8 files changed

+257
-163
lines changed

8 files changed

+257
-163
lines changed
Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: Azure Communication Services Calling SDK RAW media overview
3-
titleSuffix: An Azure Communication Services concept document
4-
description: Provides an overview of media access
3+
titleSuffix: An Azure Communication Services article
4+
description: This article provides an overview of media access for voice and video calling in Azure Communication Services.
55
author: laithrodan
66
services: azure-communication-services
77

88
ms.author: laithrodan
9-
ms.date: 07/21/2022
9+
ms.date: 06/24/2025
1010
ms.topic: conceptual
1111
ms.service: azure-communication-services
1212
ms.subservice: calling
@@ -16,48 +16,51 @@ ms.subservice: calling
1616

1717
[!INCLUDE [Public Preview](../../includes/public-preview-include-document.md)]
1818

19-
Azure Communication Services provides support for developers to get real-time access to media streams to capture, analyze and process audio or video content during active calls.
19+
Azure Communication Services provides support for developers to get real-time access to media streams. You can use real-time access to capture, analyze, and process audio or video content during active calls.
2020

21-
Consumption of live audio and video content is very prevalent in our world today in the forms of online meetings, conferences, live events, online classes and customer support. The modern communications world allows people around the globe to connect with anyone anywhere any moment on any matter virtually. With raw media access, developers can analyze audio or video streams for each participant in a call in real-time. In contact centers these streams can be used to run custom AI models for analysis such as your homegrown NLP for conversation analysis or provide real-time insights and suggestions to boost agent productivity. In virtual appointments media streams can be used to analyze sentiment when providing virtual care for patients or provide remote assistance during video calls leveraging Mixed Reality capabilities. This also opens a path for developers to leverage newer innovations with endless possibilities to enhance interaction experiences.
21+
Consumption of live audio and video content is prevalent in our world today in the forms of online meetings, conferences, live events, online classes and customer support. The modern communications world allows people around the globe to connect with anyone anywhere any moment on any matter virtually. With raw media access, developers can analyze audio or video streams for each participant in a call in real-time.
22+
23+
In contact centers, developers can use these streams to run custom AI models for analysis such as your homegrown natural language processing (NLP) for conversation analysis or provide real-time insights and suggestions to boost agent productivity. In virtual appointments, media streams can be used to analyze sentiment when providing virtual care for patients or provide remote assistance during video calls using Mixed Reality capabilities. This ability also opens a path for developers to apply newer innovations with endless possibilities to enhance interaction experiences.
2224

2325
The Azure Communication Services SDKs provides access to the media streams from the client and server side to enable developers building more inclusive and richer virtual experiences during voice or video interactions.
2426

2527
:::image type="content" source="../media/raw-media/raw-media-overview-1.png" alt-text="diagram of raw media overview use cases.":::
2628

27-
## The workflow can be split into three operations:
28-
• Capture Media: Media can be captured locally via the client SDKs or on the server side.
29+
## The workflow can be split into three operations
30+
31+
- Capture Media: Media can be captured locally via the client SDKs or on the server side.
2932

30-
Process/Transform: Media can be transformed locally on the client (for example add background blur) or be used for processing in a cloud service (for example to use it with your customer NLPU for conversation insights).
33+
- Process/Transform: Media can be transformed locally on the client (for example add background blur) or be used for processing in a cloud service (for example to use it with your customer NLP for conversation insights).
3134

32-
Provide context or inject back the Transformed Media: The output of the transformed media streams (ex, sentiment analysis) can be used to provide context or augmented media streams can be injected into the interaction through the client SDK or through the media streaming API via the server SDK.
35+
- Provide context or inject back the Transformed Media: The output of the transformed media streams, such as sentiment analysis. Use the output to provide context or augmented media streams. You can inject media streams back into the interaction through the client SDK or media streaming API via the server SDK.
3336

3437
## Media access via the Calling Client SDK
35-
During a call, developers can access the audio and video media streams. Outgoing local audio and video media streams can be pre-processed, before being sent to the encoder. Incoming remote captured media streams can be post-processed before playback on screen or speaker. For incoming audio mixed media access, the client calling SDK can have access to the mixed incoming remote audio stream which includes the mixed audio streams of the top four most dominant speakers on the call. For incoming remote unmixed audio the client calling SDK will have access to the individual audio streams of each participant on the call.
3638

37-
:::image type="content" source="../media/raw-media/raw-media-overview-2.png" alt-text="diagram of raw media overview architecture.":::
39+
During a call, developers can access the audio and video media streams. Outgoing local audio and video media streams can be preprocessed, before being sent to the encoder. Incoming remote captured media streams can be post-processed before playback on screen or speaker. For incoming audio mixed media access, the client calling SDK can have access to the mixed incoming remote audio stream, which includes the mixed audio streams of the top four most dominant speakers on the call. For incoming remote unmixed audio, the client calling SDK has access to the individual audio streams of each participant on the call.
3840

41+
:::image type="content" source="../media/raw-media/raw-media-overview-2.png" alt-text="diagram of raw media overview architecture.":::
3942

4043
## Media access use cases
41-
• Screen share: Local outgoing video access can be used to enable screen sharing, developers are able to implement the foreground services to capture the frames and send them to be published using the calling SDK OutgoingVirtualVideoStreamOptions.
4244

43-
• Background blur: Local outgoing video access can be used to capture the video frames from the camera and implement background blur before sending the blurred frames to be published using the calling SDK OutgoingVirtualVideoStreamOptions.
45+
- Screen share: Local outgoing video access can be used to enable screen sharing. Developers can implement the foreground services to capture the frames and send them to be published using the calling SDK `OutgoingVirtualVideoStreamOptions`.
4446

45-
• Video filters: Local outgoing video access can be used to capture the video frames from the camera and implement AI video filters on the captured frames before sending the video frames to be published using the calling SDK OutgoingVirtualVideoStreamOptions.
47+
- Background blur: Local outgoing video access can be used to capture the video frames from the camera and implement background blur before sending the blurred frames to be published using the calling SDK `OutgoingVirtualVideoStreamOptions`.
4648

47-
• Augmented reality/Virtual reality: Remote incoming video media streams can be captured and augmented with a virtual environment before rendering on the screen.
49+
- Video filters: Local outgoing video access can be used to capture the video frames from the camera and implement AI video filters on the captured frames before sending the video frames to be published using the calling SDK `OutgoingVirtualVideoStreamOptions`.
4850

49-
• Spatial audio: Remote incoming audio access can be used to inject spatial audio into the incoming audio stream.
51+
- Augmented reality/Virtual reality: Remote incoming video media streams can be captured and augmented with a virtual environment before rendering on the screen.
5052

53+
- Spatial audio: Remote incoming audio access can be used to inject spatial audio into the incoming audio stream.
5154

5255
:::image type="content" source="../media/raw-media/raw-media-overview-3.png" alt-text="diagram of raw media overview client interfaces.":::
5356

54-
5557
## Next steps
5658

5759
> [!div class="nextstepaction"]
5860
> [Get started with raw media](../../quickstarts/voice-video-calling/get-started-raw-media-access.md)
5961
60-
For more information, see the following articles:
62+
## Related articles
63+
6164
- Familiarize yourself with general [call flows](../call-flows.md)
6265
- Learn about [call types](../voice-video-calling/about-call-types.md)
6366
- [Plan your PSTN solution](../telephony/plan-solution.md)
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,38 @@
11
---
22
title: Music Mode on Native Calling SDK
3-
titleSuffix: An Azure Communication Services Calling concept doc
3+
titleSuffix: An Azure Communication Services Calling article
44
description: Use Azure Communication Services Calling to review Music Mode.
55
author: garchiro7
66
ms.author: jorgegarc
77
ms.service: azure-communication-services
88
ms.subservice: calling
99
ms.topic: how-to
10-
ms.date: 03/01/2024
10+
ms.date: 06/24/2025
1111
ms.custom: template-how-to
1212
---
1313

1414
# Music Mode
1515

16-
The **music mode** enhances the audio quality for music playback and performance within virtual environments, ensuring clarity and depth in sound reproduction; currently supports a 32-kHz sampling rate at 128 kbps when network bandwidth allows; when network bandwidth is insufficient, the bitrate can be reduced to as low as 48 kbps.
16+
The **music mode** enhances the audio quality for music playback and performance within virtual environments. Use music mode to ensure clarity and depth in sound reproduction. Music mode currently supports a 32-kHz sampling rate at 128 kbps when network bandwidth allows. If network bandwidth is insufficient, you can reduce the bitrate to as low as 48 kbps.
1717

18-
This feature is designed to elevate the audio quality for calls, ensuring the audio is crispy and offering a richer and more immersive audio experience. Also, it reduces audio compression to maintain the original sound, making it ideal for applications ranging from live musical performances and remote music education or music sessions.
18+
Music mode elevates the audio quality for calls, ensuring the audio is crisp and offers a richer and more immersive audio experience. Music mode also reduces audio compression to maintain the original sound. This efficiency makes it ideal for applications ranging from live musical performances and remote music education or music sessions.
1919

2020
Once music mode is enabled, you should consider:
2121

22-
- Input and output audio devices that allow high bitrate and sampling rate (two channels, 32 kHz or higher)
23-
- Enable Control Noise suppression
22+
- Input and output audio devices that accept high bitrate and sampling rate. Such as two (2) channels at 32 kHz or higher.
23+
- Enable Control Noise suppression.
2424

2525
We recommend using high-quality external loudspeakers, professional microphones, or headsets instead of Bluetooth devices to optimize the music mode.
2626

2727
**Note:** music mode only works in 1:1 calls on native platforms and group calls. Currently, music mode doesn't work in 1:1 calls between native and web. By default, music mode is disabled.
2828

29-
The Calling native SDK provides an additional set of audio filters that bring a richer experience during the call:
29+
The Calling native SDK provides another set of audio filters that bring a richer experience during the call:
3030

3131
- Echo cancellation. *You can only toggle echo cancellation only if music mode is enabled*
3232
- Noise suppression. *The currently available modes are `Off`, `Auto`, `Low`, and `High`*
3333
- Analog Automatic gain control
3434
- Digital Automatic gain control
3535

3636
## Next steps
37+
3738
- [Learn how to setup audio filters](../../tutorials/audio-quality-enhancements/add-noise-supression.md)

articles/communication-services/quickstarts/voice-video-calling/get-started-raw-media-access.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
---
2-
title: Quickstart - Add raw media access to your app
3-
titleSuffix: An Azure Communication Services quickstart
4-
description: In this quickstart, you'll learn how to add raw media access calling capabilities to your app by using Azure Communication Services.
2+
title: Access raw audio and video
3+
titleSuffix: An Azure Communication Services article
4+
description: This article describes how to add raw media access calling capabilities to your app by using Azure Communication Services.
55
author: sharifrahaman
66

77
ms.author: srahaman
8-
ms.date: 06/30/2022
8+
ms.date: 06/24/2025
99
ms.topic: quickstart
1010
ms.service: azure-communication-services
1111
ms.subservice: calling
1212
zone_pivot_groups: acs-plat-web-ios-android-windows-unity
1313
ms.custom: mode-other, devx-track-js
1414
---
1515

16-
# Quickstart: Add raw media access to your app
16+
# Access raw audio and video
17+
1718
::: zone pivot="platform-unity"
1819
[!INCLUDE [Raw media with Unity](./includes/raw-media/raw-media-access-unity.md)]
1920
::: zone-end
@@ -36,10 +37,10 @@ ms.custom: mode-other, devx-track-js
3637

3738
## Next steps
3839

39-
- [Check your network condition with the diagnostics tool](../../concepts/developer-tools/network-diagnostic.md)
40-
- [Explore User-Facing Diagnostic APIs](../../concepts/voice-video-calling/user-facing-diagnostics.md)
41-
- [Enable Media Quality Statistics in your application](../../concepts/voice-video-calling/media-quality-sdk.md)
42-
- [Consume call logs with Azure Monitor](../../concepts/analytics/logs/voice-and-video-logs.md)
40+
- [Check your network condition with the diagnostics tool](../../concepts/developer-tools/network-diagnostic.md).
41+
- [Explore User-Facing Diagnostic APIs](../../concepts/voice-video-calling/user-facing-diagnostics.md).
42+
- [Enable Media Quality Statistics in your application](../../concepts/voice-video-calling/media-quality-sdk.md).
43+
- [Consume call logs with Azure Monitor](../../concepts/analytics/logs/voice-and-video-logs.md).
4344

4445
## Related articles
4546

articles/communication-services/quickstarts/voice-video-calling/includes/raw-media/raw-media-access-android.md

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
---
2-
title: Quickstart - Add raw media access to your app (Android)
3-
titleSuffix: An Azure Communication Services quickstart
4-
description: In this quickstart, you learn how to add raw media access calling capabilities to your app by using Azure Communication Services.
2+
title: Add raw media access to your app (Android)
3+
titleSuffix: An Azure Communication Services article
4+
description: This article describes how to add raw media access calling capabilities to your app by using Azure Communication Services.
55
author: yassirbisteni
66

77
ms.author: yassirb
8-
ms.date: 06/09/2022
8+
ms.date: 06/24/2025
99
ms.topic: quickstart
1010
ms.service: azure-communication-services
1111
ms.subservice: calling
1212
ms.custom: mode-other
1313
---
1414

15-
In this quickstart, you learn how to implement raw media access by using the Azure Communication Services Calling SDK for Android.
15+
This article describes how to implement raw media access by using the Azure Communication Services Calling SDK for Android.
1616

17-
The Azure Communication Services Calling SDK offers APIs that allow apps to generate their own video frames to send to remote participants in a call.
17+
The Azure Communication Services Calling SDK enables apps to generate their own video frames to send to remote participants in a call.
1818

19-
This quickstart builds on [Quickstart: Add 1:1 video calling to your app](../../get-started-with-video-calling.md?pivots=platform-android) for Android.
19+
This article builds on [Add 1:1 video calling to your app](../../get-started-with-video-calling.md?pivots=platform-android) for Android.
2020

21-
## RawAudio access
22-
Accessing raw audio media gives you access to the incoming audio stream of the call, along with the ability to view and send custom outgoing audio streams during a call.
21+
## RawAudio access
22+
23+
Processing raw audio media gives you access to the incoming audio stream of the call, along with the ability to view and send custom outgoing audio streams during a call.
2324

2425
### Send Raw Outgoing audio
2526

@@ -155,7 +156,7 @@ buffer received events.
155156
rawIncomingAudioStream.addMixedAudioBufferReceivedListener(this::onMixedAudioBufferReceived);
156157
```
157158

158-
It's also important to remember to stop the audio stream in the current call `Call` instance:
159+
Remember to stop the audio stream in the current `Call` instance:
159160

160161
```java
161162

@@ -164,14 +165,14 @@ It's also important to remember to stop the audio stream in the current call `Ca
164165

165166
## RawVideo access
166167

167-
Because the app generates the video frames, the app must inform the Azure Communication Services Calling SDK about the video formats that the app can generate. This information allows the Azure Communication Services Calling SDK to pick the best video format configuration for the network conditions at that time.
168+
Because the app generates the video frames, the app must inform the Azure Communication Services Calling SDK about the video formats that the app can generate. This information enables the Azure Communication Services Calling SDK to pick the best video format configuration for the network conditions at that time.
168169

169-
## Virtual Video
170+
## Virtual video
170171

171172
### Supported video resolutions
172173

173174
| Aspect ratio | Resolution | Maximum FPS |
174-
| :--: | :-: | :-: |
175+
| --- | --- | --- |
175176
| 16x9 | 1080p | 30 |
176177
| 16x9 | 720p | 30 |
177178
| 16x9 | 540p | 30 |
@@ -222,7 +223,7 @@ Because the app generates the video frames, the app must inform the Azure Commun
222223
});
223224
```
224225

225-
6. Create an instance of the following helper class to generate random `RawVideoFrame`'s using `VideoStreamPixelFormat.RGBA`
226+
6. Create an instance of the following helper class to generate random `RawVideoFrame` using `VideoStreamPixelFormat.RGBA`.
226227

227228
```java
228229
public class VideoFrameSender
@@ -377,7 +378,7 @@ Because the Windows system generates the frames, you must implement your own for
377378
### Supported video resolutions
378379

379380
| Aspect ratio | Resolution | Maximum FPS |
380-
| :--: | :-: | :-: |
381+
| --- | --- | --- |
381382
| Anything | Anything up to 1080p | 30 |
382383

383384
### Steps to create a screen share video stream
@@ -412,7 +413,7 @@ Because the Windows system generates the frames, you must implement your own for
412413
ScreenShareOutgoingVideoStream rawOutgoingVideoStream = new ScreenShareOutgoingVideoStream(rawOutgoingVideoStreamOptions);
413414
```
414415
415-
4. Capture and send the video frame in the following way.
416+
4. Capture and send the video frame as follows:
416417
417418
```java
418419
private void SendRawVideoFrame()
@@ -437,11 +438,11 @@ Because the Windows system generates the frames, you must implement your own for
437438
}
438439
```
439440
440-
## Raw Incoming Video
441+
## Raw incoming video
441442
442-
This feature gives you access the video frames inside the `IncomingVideoStream` objects in order to manipulate those frames locally
443+
This feature gives you access the video frames inside the `IncomingVideoStream` objects to manipulate those frames locally
443444
444-
1. Create an instance of `IncomingVideoOptions` that sets through `JoinCallOptions` setting `VideoStreamKind.RawIncoming`
445+
1. Create an instance of `IncomingVideoOptions` that sets through `JoinCallOptions` setting `VideoStreamKind.RawIncoming`.
445446
446447
```java
447448
IncomingVideoOptions incomingVideoOptions = new IncomingVideoOptions()
@@ -519,6 +520,6 @@ This feature gives you access the video frames inside the `IncomingVideoStream`
519520
}
520521
```
521522
522-
## Quickstart: Try out the test app
523+
## Next steps
523524
524-
- [Raw Video](https://github.com/Azure-Samples/communication-services-android-quickstarts/tree/main/RawVideo)
525+
- Use the sample app on GitHub at [Raw Video](https://github.com/Azure-Samples/communication-services-android-quickstarts/tree/main/RawVideo).

0 commit comments

Comments
 (0)