Szybki start: ustawianie ograniczeń wideo w aplikacji wywołującej
Ważne
Funkcje opisane w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Omówienie
Interfejs API ograniczeń wideo umożliwia deweloperom kontrolowanie jakości wideo z poziomu wywołań wideo. W tym przewodniku Szybki start pokazano, jak używać interfejsu API do ustawiania ograniczeń.
Wymagania wstępne
Zapoznaj się z przewodnikiem Szybki start dotyczący połączeń głosowych, aby skonfigurować przykładową aplikację przy użyciu połączeń głosowych.
Klasy
Nazwa/nazwisko | opis |
---|---|
Ograniczenia wideo | Służy do przechowywania zarówno przychodzących ograniczeń wideo, jak i wychodzących ograniczeń wideo. |
Ograniczenia wychodząceVideo | Służy do określania ograniczeń (MaxWidth | MaxHeight | MaxFrameRate ) dla wychodzących strumieni wideo. |
Ograniczenia dotyczące video przychodzącego | Służy do określania ograniczeń (MaxWidth | MaxHeight ) dla przychodzących strumieni wideo. |
Korzystanie z ograniczeń wideo
W poniższych sekcjach opisano, jak można ustawić ograniczenia wideo dla przychodzących i/lub wychodzących strumieni wideo w różnych porach wywołania.
Ustawianie ograniczeń wideo przed rozpoczęciem połączenia
W przypadku przychodzących strumieni wideo należy dodać element IncomingVideoConstraints
do elementu IncomingVideoOptions
.
var IncomingVideoOptions = new IncomingVideoOptions()
{
Constraints = new IncomingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/
},
// other options
// ...
}
W przypadku wychodzących OutgoingVideoConstraints
strumieni wideo należy dodać element do elementu OutgoingVideoOptions
.
var OutgoingVideoOptions = new OutgoingVideoOptions()
{
Constraints = new OutgoingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/,
MaxFrameRate = /*value*/
},
// other options
// ...
}
Ponieważ opcje są używane do uruchamiania/dołączania wywołania, ograniczenia mogą być stosowane automatycznie do strumieni. Na przykład:
var joinCallOptions = new JoinCallOptions()
{
IncomingVideoOptions = new IncomingVideoOptions()
{
Constraints = new IncomingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/
},
// other options
// ...
},
OutgoingVideoOptions = new OutgoingVideoOptions()
{
Constraints = new OutgoingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/,
MaxFrameRate = /*value*/
},
// other options
// ...
}
};
await callAgent.JoinAsync(locator, joinCallOptions);
Ustawianie ograniczeń wideo podczas wywołania
Zamiast ustawiać ograniczenia wideo przed rozpoczęciem wywołania, można również dynamicznie dostosowywać ograniczenia wideo podczas wywołania. Musisz wywołać SetVideoConstraints
klasę Call
typu i podać ograniczenia.
OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints()
{
outgoingVideoConstraints.MaxWidth = /*value*/ ;
outgoingVideoConstraints.MaxHeight = /*value*/ ;
outgoingVideoConstraints.MaxFrameRate = /*value*/ ;
};
IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints()
{
incomingVideoConstraints.MaxWidth = /*value*/ ;
incomingVideoConstraints.MaxHeight = /*value*/ ;
};
VideoConstraints constraints = new VideoConstraints();
constraints.OutgoingVideoConstraints = outgoingVideoConstraints;
constraints.IncomingVideoConstraints = incomingVideoConstraints;
call.SetVideoConstraints(constraints);
Aby zresetować/usunąć wcześniej ustawione ograniczenia wideo, musisz postępować zgodnie z powyższym wzorcem i podać 0
jako wartość ograniczenia. Podanie null
wartości albo IncomingVideoConstraints
OutgoingVideoConstraints
nie spowoduje zresetowania/usunięcia ograniczeń, a ograniczenia z wartością null
zostaną zignorowane.
Ograniczenia
Uwaga
Pamiętaj, aby pamiętać o tych ograniczeniach podczas korzystania z interfejsu API ograniczeń wideo. Niektóre ograniczenia zostaną usunięte w przyszłych wersjach.
Istnieją pewne znane ograniczenia dotyczące bieżącego interfejsu API ograniczeń wideo.
Ograniczenie jest ograniczeniem maksymalnym, co oznacza, że możliwe ograniczenie może być określoną wartością lub mniejszą. Nie ma gwarancji, że rzeczywista wartość pozostaje taka sama jak określona przez użytkownika.
Gdy użytkownik ustawia wartość ograniczenia, która jest zbyt mała, zestaw SDK będzie używać najmniejszej dostępnej wartości, która jest obsługiwana.
W przypadku ustawienia
OutgoingVideoConstraints
podczas wywołania bieżący strumień wideo nie pobiera automatycznie określonych ograniczeń. Aby ograniczenia zaczęły obowiązywać, należy zatrzymać i ponownie uruchomić wychodzące wideo.IncomingVideoConstraints
obecnie jest preferowanym przez użytkownika ograniczeniem zamiast ograniczenia twardego, co oznacza, że w zależności od sieci i sprzętu rzeczywista wartość odebrana może nadal przekraczać zestaw ograniczeń.
Statystyki multimediów
Aby ocenić i porównać jakość wideo po zastosowaniu ograniczeń wideo, możesz uzyskać dostęp do interfejsu API MediaStats, aby uzyskać informacje o rozdzielczości i szybkości transmisji bitów strumienia. Statystyki multimediów obejmują również inne szczegółowe statystyki związane ze strumieniami, takie jak zakłócenia, utrata pakietów, czas rundy itp.
Ważne
Funkcje opisane w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Omówienie
Interfejs API ograniczeń wideo umożliwia deweloperom kontrolowanie jakości wideo z poziomu wywołań wideo. W tym przewodniku Szybki start pokazano, jak używać interfejsu API do ustawiania ograniczeń.
Wymagania wstępne
Zapoznaj się z przewodnikiem Szybki start dotyczący połączeń głosowych, aby skonfigurować przykładową aplikację przy użyciu połączeń głosowych.
Klasy
Nazwa/nazwisko | opis |
---|---|
Ograniczenia wideo | Służy do przechowywania zarówno przychodzących ograniczeń wideo, jak i wychodzących ograniczeń wideo. |
Ograniczenia wychodząceVideo | Służy do określania ograniczeń (maxWidth | maxHeight | maxFrameRate ) dla wychodzących strumieni wideo. |
Ograniczenia dotyczące video przychodzącego | Służy do określania ograniczeń (maxWidth | maxHeight ) dla przychodzących strumieni wideo. |
Korzystanie z ograniczeń wideo
W poniższych sekcjach opisano, jak można ustawić ograniczenia wideo dla przychodzących i/lub wychodzących strumieni wideo w różnych porach wywołania.
Ustawianie ograniczeń wideo przed rozpoczęciem połączenia
W przypadku przychodzących strumieni wideo należy dodać element IncomingVideoConstraints
do elementu IncomingVideoOptions
.
IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints();
incomingVideoConstraints.setMaxWidth(/*value*/);
incomingVideoConstraints.setMaxHeight(/*value*/);
// ...
IncomingVideoOptions incomingVideoOptions = new IncomingVideoOptions();
incomingVideoOptions.setConstraints(incomingVideoConstraints);
W przypadku wychodzących OutgoingVideoConstraints
strumieni wideo należy dodać element do elementu OutgoingVideoOptions
.
OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints()
outgoingVideoConstraints.setMaxWidth(/*value*/);
outgoingVideoConstraints.setMaxHeight(/*value*/);
outgoingVideoConstraints.setMaxFrameRate(/*value*/);
// ...
OutgoingVideoOptions outgoingVideoOptions = new OutgoingVideoOptions();
outgoingVideoOptions.setConstraints(outgoingVideoConstraints);
Ponieważ opcje są używane do uruchamiania/dołączania wywołania, ograniczenia mogą być stosowane automatycznie do strumieni. Na przykład:
JoinCallOptions joinCallOptions = new JoinCallOptions();
joinCallOptions.setIncomingVideoOptions(incomingVideoOptions);
joinCallOptions.setOutgoingVideoOptions(outgoingVideoOptions);
callAgent.Join(context, locator, joinCallOptions);
Ustawianie ograniczeń wideo podczas wywołania
Zamiast ustawiać ograniczenia wideo przed rozpoczęciem wywołania, można również dynamicznie dostosowywać ograniczenia wideo podczas wywołania. Musisz wywołać setVideoConstraints
klasę Call
typu i podać ograniczenia.
OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints();
outgoingVideoConstraints.setMaxWidth(/*value*/);
outgoingVideoConstraints.setMaxHeight(/*value*/);
outgoingVideoConstraints.setMaxFrameRate(/*value*/);
IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints();
incomingVideoConstraints.setMaxWidth(/*value*/);
incomingVideoConstraints.setMaxHeight(/*value*/);
VideoConstraints constraints = new VideoConstraints();
constraints.setOutgoingVideoConstraints(outgoingVideoConstraints);
constraints.setIncomingVideoConstraints(incomingVideoConstraints);
call.setVideoConstraints(constraints);
Aby zresetować/usunąć wcześniej ustawione ograniczenia wideo, musisz postępować zgodnie z powyższym wzorcem i podać 0
jako wartość ograniczenia. Podanie null
wartości albo IncomingVideoConstraints
OutgoingVideoConstraints
nie spowoduje zresetowania/usunięcia ograniczeń, a ograniczenia z wartością null
zostaną zignorowane.
Ograniczenia
Uwaga
Pamiętaj, aby pamiętać o tych ograniczeniach podczas korzystania z interfejsu API ograniczeń wideo. Niektóre ograniczenia zostaną usunięte w przyszłych wersjach.
Istnieją pewne znane ograniczenia dotyczące bieżącego interfejsu API ograniczeń wideo.
Ograniczenie jest ograniczeniem maksymalnym, co oznacza, że możliwe ograniczenie może być określoną wartością lub mniejszą. Nie ma gwarancji, że rzeczywista wartość pozostaje taka sama jak określona przez użytkownika.
Gdy użytkownik ustawia wartość ograniczenia, która jest zbyt mała, zestaw SDK będzie używać najmniejszej dostępnej wartości, która jest obsługiwana.
W przypadku ustawienia
OutgoingVideoConstraints
podczas wywołania bieżący strumień wideo nie pobiera automatycznie określonych ograniczeń. Aby ograniczenia zaczęły obowiązywać, należy zatrzymać i ponownie uruchomić wychodzące wideo.IncomingVideoConstraints
obecnie jest preferowanym przez użytkownika ograniczeniem zamiast ograniczenia twardego, co oznacza, że w zależności od sieci i sprzętu rzeczywista wartość odebrana może nadal przekraczać zestaw ograniczeń.
Statystyki multimediów
Aby ocenić i porównać jakość wideo po zastosowaniu ograniczeń wideo, możesz uzyskać dostęp do interfejsu API MediaStats, aby uzyskać informacje o rozdzielczości i szybkości transmisji bitów strumienia. Statystyki multimediów obejmują również inne szczegółowe statystyki związane ze strumieniami, takie jak zakłócenia, utrata pakietów, czas rundy itp.
Ważne
Funkcje opisane w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Omówienie
Interfejs API ograniczeń wideo umożliwia deweloperom kontrolowanie jakości wideo z poziomu wywołań wideo. W tym przewodniku Szybki start pokazano, jak używać interfejsu API do ustawiania ograniczeń.
Wymagania wstępne
Zapoznaj się z przewodnikiem Szybki start dotyczący połączeń głosowych, aby skonfigurować przykładową aplikację przy użyciu połączeń głosowych.
Klasy
Nazwa/nazwisko | opis |
---|---|
Ograniczenia wideo | Służy do przechowywania zarówno przychodzących ograniczeń wideo, jak i wychodzących ograniczeń wideo. |
Ograniczenia wychodząceVideo | Służy do określania ograniczeń (maxWidth | maxHeight | maxFrameRate ) dla wychodzących strumieni wideo. |
Ograniczenia dotyczące video przychodzącego | Służy do określania ograniczeń (maxWidth | maxHeight ) dla przychodzących strumieni wideo. |
Korzystanie z ograniczeń wideo
W poniższych sekcjach opisano, jak można ustawić ograniczenia wideo dla przychodzących i/lub wychodzących strumieni wideo w różnych porach wywołania.
Ustawianie ograniczeń wideo przed rozpoczęciem połączenia
W przypadku przychodzących strumieni wideo należy dodać element IncomingVideoConstraints
do elementu IncomingVideoOptions
.
let incomingVideoConstraints = IncomingVideoConstraints()
incomingVideoConstraints.maxWidth = /*value*/
incomingVideoConstraints.maxHeight = /*value*/
// ...
let incomingVideoOptions = IncomingVideoOptions()
incomingVideoOptions.constraints = incomingVideoConstraints
W przypadku wychodzących OutgoingVideoConstraints
strumieni wideo należy dodać element do elementu OutgoingVideoOptions
.
let outgoingVideoConstraints = OutgoingVideoConstraints()
outgoingVideoConstraints.maxWidth = /*value*/
outgoingVideoConstraints.maxHeight = /*value*/
outgoingVideoConstraint.maxFrameRate = /*value*/
// ...
let outgoingVideoOptions = OutgoingVideoOptions()
outgoingVideoOptions.constraints = outgoingVideoConstraints
Ponieważ opcje są używane do uruchamiania/dołączania wywołania, ograniczenia mogą być stosowane automatycznie do strumieni. Na przykład:
let incomingVideoConstraints = IncomingVideoConstraints()
incomingVideoConstraints.maxWidth = /*value*/
incomingVideoConstraints.maxHeight = /*value*/
let incomingVideoOptions = IncomingVideoOptions()
incomingVideoOptions.constraints = incomingVideoConstraints
let outgoingVideoConstraints = OutgoingVideoConstraints()
outgoingVideoConstraints.maxWidth = /*value*/
outgoingVideoConstraints.maxHeight = /*value*/
outgoingVideoConstraint.maxFrameRate = /*value*/
let outgoingVideoOptions = OutgoingVideoOptions()
outgoingVideoOptions.constraints = outgoingVideoConstraints
let joinCallOptions = new JoinCallOptions()
joinCallOptions.incomingVideoOptions = incomingVideoOptions
joinCallOptions.outgoingVideoOptions = outgoingVideoOptions
callAgent.join(with: locator, joinCallOptions: joinCallOptions);
Ustawianie ograniczeń wideo podczas wywołania
Zamiast ustawiać ograniczenia wideo przed rozpoczęciem wywołania, można również dynamicznie dostosowywać ograniczenia wideo podczas wywołania. Musisz wywołać set(videoConstraints)
klasę Call
typu i podać ograniczenia.
let outgoingVideoConstraints = OutgoingVideoConstraints()
outgoingVideoConstraints.maxWidth = /*value*/
outgoingVideoConstraints.maxHeight = /*value*/
outgoingVideoConstraint.maxFrameRate = /*value*/
let incomingVideoConstraints = IncomingVideoConstraints()
incomingVideoConstraints.maxWidth = /*value*/
incomingVideoConstraints.maxHeight = /*value*/
let videoConstraints = VideoConstraints()
videoConstraints.outgoingVideoConstraints = outgoingVideoConstraints
videoConstraints.incomingVideoConstraints = incomingVideoConstraints
call?.set(videoConstraints: videoConstraints)
Aby zresetować/usunąć wcześniej ustawione ograniczenia wideo, musisz postępować zgodnie z powyższym wzorcem i podać 0
jako wartość ograniczenia. Podanie null
wartości albo IncomingVideoConstraints
OutgoingVideoConstraints
nie spowoduje zresetowania/usunięcia ograniczeń, a ograniczenia z wartością null
zostaną zignorowane.
Ograniczenia
Uwaga
Pamiętaj, aby pamiętać o tych ograniczeniach podczas korzystania z interfejsu API ograniczeń wideo. Niektóre ograniczenia zostaną usunięte w przyszłych wersjach.
Istnieją pewne znane ograniczenia dotyczące bieżącego interfejsu API ograniczeń wideo.
Ograniczenie jest ograniczeniem maksymalnym, co oznacza, że możliwe ograniczenie może być określoną wartością lub mniejszą. Nie ma gwarancji, że rzeczywista wartość pozostaje taka sama jak określona przez użytkownika.
Gdy użytkownik ustawia wartość ograniczenia, która jest zbyt mała, zestaw SDK będzie używać najmniejszej dostępnej wartości, która jest obsługiwana.
W przypadku ustawienia
OutgoingVideoConstraints
podczas wywołania bieżący strumień wideo nie pobiera automatycznie określonych ograniczeń. Aby ograniczenia zaczęły obowiązywać, należy zatrzymać i ponownie uruchomić wychodzące wideo.IncomingVideoConstraints
obecnie jest preferowanym przez użytkownika ograniczeniem zamiast ograniczenia twardego, co oznacza, że w zależności od sieci i sprzętu rzeczywista wartość odebrana może nadal przekraczać zestaw ograniczeń.
Statystyki multimediów
Aby ocenić i porównać jakość wideo po zastosowaniu ograniczeń wideo, możesz uzyskać dostęp do interfejsu API MediaStats, aby uzyskać informacje o rozdzielczości i szybkości transmisji bitów strumienia. Statystyki multimediów obejmują również inne szczegółowe statystyki związane ze strumieniami, takie jak zakłócenia, utrata pakietów, czas rundy itp.
Ograniczenia wideo można ustawić w wywołaniach w celu kontrolowania jakości wideo na podstawie rozdzielczości, szybkości klatek lub szybkości transmisji bitów w wywołaniach wideo. W tym przewodniku Szybki start pokazano, jak ustawić ograniczenia wideo na początku wywołania i jak używać naszej setConstraints
metody w obiekcie wywołania w celu dynamicznego ustawiania ograniczeń wideo podczas wywołania.
Wysyłanie ograniczeń wideo
Zestaw SDK połączeń sieci Web usług Azure Communication Services obsługuje ustawianie maksymalnej rozdzielczości wideo, szybkości klatek na ramce lub szybkości transmisji bitów wysyłanej przez klienta. Ograniczenia dotyczące wideo nadawcy są obsługiwane w przeglądarkach klasycznych (Chrome, Edge, Firefox) i w przypadku korzystania z przeglądarki mobilnej Safari dla systemu iOS lub przeglądarki mobilnej Android Chrome.
Obsługiwane ograniczenia |
---|
Przychodzące wideo: rozdzielczość Wychodzące wideo: rozdzielczość, szybkość klatek, szybkość transmisji bitów |
Ustawianie ograniczeń wideo na początku połączenia — wideo wychodzące (wyślij)
Ustawienie ograniczeń wideo jest implementowane w interfejsie Call
. Aby użyć ograniczeń wideo, możesz określić ograniczenia z poziomu podczas CallOptions
nawiązywania połączenia, akceptowania połączenia lub dołączania do połączenia. Należy określić localVideoStreams
w pliku videoOptions
.
Należy pamiętać, że ograniczenia nie działają, jeśli dołączysz połączenie tylko z opcją tylko audio i włącz aparat później. W takim przypadku można dynamicznie ustawiać ograniczenia wideo przy użyciu setConstraints
metody w interfejsie Call
.
const callOptions = {
videoOptions: {
localVideoStreams: [...],
constraints: {
send: {
bitrate: {
max: 575000
},
frameHeight: {
max: 240
},
frameRate: {
max: 20
}
}
}
},
audioOptions: {
muted: false
}
};
// make a call
this.callAgent.startCall(identitiesToCall, callOptions);
// join a group call
this.callAgent.join({ groupId }, callOptions);
// accept an incoming call
this.incomingCall.accept(callOptions)
Typy ograniczeń wideo są opisane w następujący sposób:
export declare interface VideoOptions {
localVideoStreams?: LocalVideoStream[];
//video constraint when call starts
constraints?: VideoConstraints;
};
export declare type VideoConstraints = {
send?: VideoSendConstraints;
};
export type VideoSendConstraints = {
/**
* Resolution constraint
*/
frameHeight?: MediaConstraintRange;
/**
* FrameRate constraint
*/
frameRate?: MediaConstraintRange;
/**
* Bitrate constraint
*/
bitrate?: MediaConstraintRange;
};
export declare type MediaConstraintRange = {
max?: number;
};
Podczas ustawiania ograniczeń wideo zestaw SDK wybiera najbliższą wartość, która mieści się w zestawie ograniczeń, aby zapobiec wartościom rozdzielczości, szybkości klatek i szybkości transmisji bitów, aby nie przekraczać maksymalnego zestawu wartości ograniczeń. Ponadto gdy wartość ograniczenia rozpoznawania jest za mała, zestaw SDK wybiera najmniejszą dostępną rozdzielczość. W takim przypadku wysokość wybranej rozdzielczości może być większa niż wartość ograniczenia.
Uwaga
Dla wszystkich bitrate
parametrów frameHeight
i frameRate
wartość ograniczenia jest ograniczeniem max
, co oznacza, że rzeczywista wartość wywołania może być określoną wartością lub mniejszą.
Nie ma gwarancji, że wysłane rozwiązanie wideo pozostanie w określonej rozdzielczości.
Element frameHeight
in VideoSendConstraints
ma inne znaczenie, gdy urządzenie przenośne jest w trybie pionowym. W trybie pionowym ta wartość wskazuje krótszą stronę urządzenia. Na przykład określenie frameHeight.max
wartości z wartością 240 na urządzeniu 1080(W) x 1920(H) w trybie pionowym, wysokość ograniczenia znajduje się po stronie 1080(W). Gdy to samo urządzenie jest w trybie poziomym (1920(W) x 1080(H)), ograniczenie znajduje się po stronie 1080(H).
Jeśli używasz interfejsu API MediaStats do śledzenia wysłanej rozdzielczości wideo, możesz dowiedzieć się, że wysłana rozdzielczość może ulec zmianie podczas wywołania. Może ona iść w górę i w dół, ale powinna być równa lub mniejsza niż określona wartość ograniczenia. Ta zmiana rozwiązania jest oczekiwanym zachowaniem. Przeglądarka ma również pewną regułę degradacji, aby dostosować wysyłanie rozdzielczości na podstawie procesora CPU lub warunków sieciowych.
Ustawianie ograniczeń wideo podczas połączenia — wideo wychodzące (wyślij)
Ograniczenia wideo można ustawić podczas wywołania przy użyciu setConstraints
metody w Call
obiekcie .
// For eg, when you've started a call,
const currentCall = this.callAgent.startCall(identitiesToCall, callOptions);
// To set constraints during the call,
await currentCall.setConstraints({
video: {
send: {
frameHeight: {
max: 360
},
frameRate: {
max: 15
}
}
}
});
// To set only a particular constraint (the others will stay as what they were set before, if they were set)
await currentCall.setConstraints({
video: {
send: {
bitrate: {
max: 400000
}
}
}
});
// To unset any constraint,
await currentCall.setConstraints({
video: {
send: {
frameHeight: {
max: 0
}
}
}
});
Uwaga
Ustawienie wartości ograniczenia, tak jak 0
spowoduje anulowanie ustawienia poprzednio ustawionych ograniczeń. Możesz użyć tego sposobu, aby zresetować lub usunąć ograniczenia.
Odbieranie ograniczeń wideo
Aby kontrolować rozdzielczość po stronie odbiorcy przy użyciu zestawu SDK połączeń internetowych usług Azure Communication Services, możesz dostosować rozmiar renderatora tego klipu wideo. Zestaw SDK wywołujący automatycznie dostosowuje odebrane rozwiązanie na podstawie wymiarów modułu renderującego. Zestaw SDK nie zażąda przychodzącego strumienia wideo (szerokości i wysokości), który może zmieścić się w oknie wideo programu renderującego.
Używanie statycznych multimediów do zrozumienia wpływu ograniczeń wideo
Aby ocenić i porównać jakość wideo po zastosowaniu ograniczeń wideo, możesz uzyskać dostęp do interfejsu API MediaStats, aby uzyskać informacje o rozdzielczości i szybkości transmisji bitów strumienia wysyłania. Statystyki multimediów obejmują również inne szczegółowe statystyki związane ze strumieniami, takie jak zakłócenia, utrata pakietów, czas rundy itp.
const mediaStatsFeature = call.feature(Features.MediaStats);
const mediaStatsCollector = mediaStatsFeature.createCollector();
mediaStatsCollector.on('sampleReported', (sample: SDK.MediaStatsReportSample) => {
// process the stats for the call.
console.log(sample);
});
Następne kroki
Aby uzyskać więcej informacji, zobacz następujące artykuły:
- Dowiedz się więcej o dokumencie dotyczącym pojęć związanych z ograniczeniami wideo
- Dowiedz się więcej o możliwościach wywoływania zestawu SDK