Aracılığıyla paylaş


Hızlı Başlangıç: Arama uygulamanızda video kısıtlamaları ayarlama

Önemli

Bu makalede açıklanan işlevsellik şu anda genel önizleme aşamasındadır. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Genel bakış

Video Kısıtlamaları API'si, geliştiricilerin görüntülü aramalarının içinden video kalitesini denetlemesine olanak tanır. Bu hızlı başlangıç kılavuzunda, kısıtlamaları ayarlamak için API'nin nasıl kullanılacağını göstereceğiz.

Önkoşullar

Sesli arama ile örnek bir uygulama ayarlamak için Sesli Arama Hızlı Başlangıcı'na bakın.

Sınıflar

Veri Akışı Adı Açıklama
VideoConstraints Hem gelen video kısıtlamalarını hem de giden video kısıtlamalarını tutmak için kullanılır.
GidenVideoConstraints Giden video akışları için kısıtlamaları (MaxWidth | MaxHeight | MaxFrameRate) belirtmek için kullanılır.
IncomingVideoConstraints Gelen video akışları için kısıtlamaları (MaxWidth | MaxHeight) belirtmek için kullanılır.

Video kısıtlamalarını kullanma

Aşağıdaki bölümlerde, aramanın farklı zamanlarında gelen ve/veya giden video akışları için video kısıtlamalarının nasıl ayarlanabileceği açıklanmaktadır.

Arama başlatmadan önce video kısıtlamalarını ayarlama

Gelen video akışları için öğesine bir IncomingVideoConstraints eklenmelidirIncomingVideoOptions.

    var IncomingVideoOptions = new IncomingVideoOptions()
    {
        Constraints = new IncomingVideoConstraints() 
        { 
            MaxWidth = /*value*/, 
            MaxHeight = /*value*/ 
        },
        // other options
        // ...
    }

Giden video akışları için öğesine bir OutgoingVideoConstraints eklenmesi OutgoingVideoOptionsgerekir.

    var OutgoingVideoOptions = new OutgoingVideoOptions()
    {
        Constraints = new OutgoingVideoConstraints() 
        { 
            MaxWidth = /*value*/, 
            MaxHeight = /*value*/, 
            MaxFrameRate = /*value*/ 
        },
        // other options
        // ...
    }

Seçenekler bir çağrıyı başlatmak/birleştirmek için kullanıldığından, kısıtlamalar akışlara otomatik olarak uygulanabilir. Örneğin:

    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);

Arama sırasında video kısıtlamalarını ayarlama

Arama başlatmadan önce video kısıtlamalarını ayarlamak yerine, arama sırasında video kısıtlamalarını dinamik olarak da ayarlayabilirsiniz. Tür sınıfınızı çağırmanız SetVideoConstraints Call ve kısıtlamaları sağlamanız gerekir.


    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);

Daha önce ayarladığınız video kısıtlamalarını sıfırlamak/kaldırmak için yukarıdaki deseni izlemeniz ve kısıtlama değeri olarak sağlamanız 0 gerekir. null Kısıtlamalardan biri IncomingVideoConstraints için değer sağlama veya OutgoingVideoConstraints sıfırlama/kaldırma ve değer null içeren kısıtlamalar yoksayılır.

Sınırlamalar

Not

Video Kısıtlamaları API'sini kullanırken bu sınırlamaların farkında olduğunuzdan emin olun. Sınırlamalardan bazıları gelecek sürümlerde kaldırılacaktır.

Geçerli Video Kısıtlamaları API'sinde bilinen bazı sınırlamalar vardır.

  • Kısıtlama bir maksimum kısıtlamadır; bu da olası kısıtlama değerinin belirtilen değer veya daha küçük olabileceği anlamına gelir. Gerçek değerin kullanıcı tarafından belirtilen değerle aynı kalmasının garantisi yoktur.

  • Kullanıcı çok küçük bir kısıtlama değeri belirlediğinde, SDK desteklenen en küçük kullanılabilir değeri kullanır.

  • Arama sırasında ayar OutgoingVideoConstraints için, geçerli devam eden video akışı belirtilen kısıtlamaları otomatik olarak almaz. Kısıtlamaların etkili olması için giden videoyu durdurmanız ve yeniden başlatmanız gerekir.

  • IncomingVideoConstraints şu anda sabit kısıtlama yerine kullanıcı tarafından tercih edilen bir kısıtlamadır. Bu, ağınıza ve donanımınıza bağlı olarak alınan gerçek değerin yine de kısıtlama kümesini aşabileceği anlamına gelir.

Medya istatistikleri

Video kısıtlamalarını uyguladıktan sonra video kalitesini değerlendirmek ve karşılaştırmak için MediaStats API'sine erişerek akışın video çözünürlüğü ve bit hızı bilgilerini alabilirsiniz. Medya istatistikleri, akışlarla ilgili değişim, paket kaybı, gidiş dönüş süresi vb. gibi diğer ayrıntılı istatistikleri de içerir.

Önemli

Bu makalede açıklanan işlevsellik şu anda genel önizleme aşamasındadır. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Genel bakış

Video Kısıtlamaları API'si, geliştiricilerin görüntülü aramalarının içinden video kalitesini denetlemesine olanak tanır. Bu hızlı başlangıç kılavuzunda, kısıtlamaları ayarlamak için API'nin nasıl kullanılacağını göstereceğiz.

Önkoşullar

Sesli arama ile örnek bir uygulama ayarlamak için Sesli Arama Hızlı Başlangıcı'na bakın.

Sınıflar

Veri Akışı Adı Açıklama
VideoConstraints Hem gelen video kısıtlamalarını hem de giden video kısıtlamalarını tutmak için kullanılır.
GidenVideoConstraints Giden video akışları için kısıtlamaları (maxWidth | maxHeight | maxFrameRate) belirtmek için kullanılır.
IncomingVideoConstraints Gelen video akışları için kısıtlamaları (maxWidth | maxHeight) belirtmek için kullanılır.

Video kısıtlamalarını kullanma

Aşağıdaki bölümlerde, aramanın farklı zamanlarında gelen ve/veya giden video akışları için video kısıtlamalarının nasıl ayarlanabileceği açıklanmaktadır.

Arama başlatmadan önce video kısıtlamalarını ayarlama

Gelen video akışları için öğesine bir IncomingVideoConstraints eklenmelidirIncomingVideoOptions.

    IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints();
    incomingVideoConstraints.setMaxWidth(/*value*/);
    incomingVideoConstraints.setMaxHeight(/*value*/);

    // ...

    IncomingVideoOptions incomingVideoOptions = new IncomingVideoOptions();
    incomingVideoOptions.setConstraints(incomingVideoConstraints);

Giden video akışları için öğesine bir OutgoingVideoConstraints eklenmesi OutgoingVideoOptionsgerekir.

    OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints() 
    outgoingVideoConstraints.setMaxWidth(/*value*/); 
    outgoingVideoConstraints.setMaxHeight(/*value*/); 
    outgoingVideoConstraints.setMaxFrameRate(/*value*/); 
   
    // ...
    
    OutgoingVideoOptions outgoingVideoOptions = new OutgoingVideoOptions();
    outgoingVideoOptions.setConstraints(outgoingVideoConstraints);

Seçenekler bir çağrıyı başlatmak/birleştirmek için kullanıldığından, kısıtlamalar akışlara otomatik olarak uygulanabilir. Örneğin:

    JoinCallOptions joinCallOptions = new JoinCallOptions();
    joinCallOptions.setIncomingVideoOptions(incomingVideoOptions);
    joinCallOptions.setOutgoingVideoOptions(outgoingVideoOptions);
    callAgent.Join(context, locator, joinCallOptions);

Arama sırasında video kısıtlamalarını ayarlama

Arama başlatmadan önce video kısıtlamalarını ayarlamak yerine, arama sırasında video kısıtlamalarını dinamik olarak da ayarlayabilirsiniz. Tür sınıfınızı çağırmanız setVideoConstraints Call ve kısıtlamaları sağlamanız gerekir.


    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);

Daha önce ayarladığınız video kısıtlamalarını sıfırlamak/kaldırmak için yukarıdaki deseni izlemeniz ve kısıtlama değeri olarak sağlamanız 0 gerekir. null Kısıtlamalardan biri IncomingVideoConstraints için değer sağlama veya OutgoingVideoConstraints sıfırlama/kaldırma ve değer null içeren kısıtlamalar yoksayılır.

Sınırlamalar

Not

Video Kısıtlamaları API'sini kullanırken bu sınırlamaların farkında olduğunuzdan emin olun. Sınırlamalardan bazıları gelecek sürümlerde kaldırılacaktır.

Geçerli Video Kısıtlamaları API'sinde bilinen bazı sınırlamalar vardır.

  • Kısıtlama bir maksimum kısıtlamadır; bu da olası kısıtlama değerinin belirtilen değer veya daha küçük olabileceği anlamına gelir. Gerçek değerin kullanıcı tarafından belirtilen değerle aynı kalmasının garantisi yoktur.

  • Kullanıcı çok küçük bir kısıtlama değeri belirlediğinde, SDK desteklenen en küçük kullanılabilir değeri kullanır.

  • Arama sırasında ayar OutgoingVideoConstraints için, geçerli devam eden video akışı belirtilen kısıtlamaları otomatik olarak almaz. Kısıtlamaların etkili olması için giden videoyu durdurmanız ve yeniden başlatmanız gerekir.

  • IncomingVideoConstraints şu anda sabit kısıtlama yerine kullanıcı tarafından tercih edilen bir kısıtlamadır. Bu, ağınıza ve donanımınıza bağlı olarak alınan gerçek değerin yine de kısıtlama kümesini aşabileceği anlamına gelir.

Medya istatistikleri

Video kısıtlamalarını uyguladıktan sonra video kalitesini değerlendirmek ve karşılaştırmak için MediaStats API'sine erişerek akışın video çözünürlüğü ve bit hızı bilgilerini alabilirsiniz. Medya istatistikleri, akışlarla ilgili değişim, paket kaybı, gidiş dönüş süresi vb. gibi diğer ayrıntılı istatistikleri de içerir.

Önemli

Bu makalede açıklanan işlevsellik şu anda genel önizleme aşamasındadır. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Genel bakış

Video Kısıtlamaları API'si, geliştiricilerin görüntülü aramalarının içinden video kalitesini denetlemesine olanak tanır. Bu hızlı başlangıç kılavuzunda, kısıtlamaları ayarlamak için API'nin nasıl kullanılacağını göstereceğiz.

Önkoşullar

Sesli arama ile örnek bir uygulama ayarlamak için Sesli Arama Hızlı Başlangıcı'na bakın.

Sınıflar

Veri Akışı Adı Açıklama
VideoConstraints Hem gelen video kısıtlamalarını hem de giden video kısıtlamalarını tutmak için kullanılır.
GidenVideoConstraints Giden video akışları için kısıtlamaları (maxWidth | maxHeight | maxFrameRate) belirtmek için kullanılır.
IncomingVideoConstraints Gelen video akışları için kısıtlamaları (maxWidth | maxHeight) belirtmek için kullanılır.

Video kısıtlamalarını kullanma

Aşağıdaki bölümlerde, aramanın farklı zamanlarında gelen ve/veya giden video akışları için video kısıtlamalarının nasıl ayarlanabileceği açıklanmaktadır.

Arama başlatmadan önce video kısıtlamalarını ayarlama

Gelen video akışları için öğesine bir IncomingVideoConstraints eklenmelidirIncomingVideoOptions.

    let incomingVideoConstraints = IncomingVideoConstraints()
    incomingVideoConstraints.maxWidth = /*value*/ 
    incomingVideoConstraints.maxHeight = /*value*/ 
    
    // ...
    
    let incomingVideoOptions = IncomingVideoOptions()
    incomingVideoOptions.constraints = incomingVideoConstraints

Giden video akışları için öğesine bir OutgoingVideoConstraints eklenmesi OutgoingVideoOptionsgerekir.

    let outgoingVideoConstraints = OutgoingVideoConstraints()
    outgoingVideoConstraints.maxWidth = /*value*/ 
    outgoingVideoConstraints.maxHeight = /*value*/
    outgoingVideoConstraint.maxFrameRate = /*value*/ 
    
    // ...

    let outgoingVideoOptions = OutgoingVideoOptions()
    outgoingVideoOptions.constraints = outgoingVideoConstraints

Seçenekler bir çağrıyı başlatmak/birleştirmek için kullanıldığından, kısıtlamalar akışlara otomatik olarak uygulanabilir. Örneğin:

    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);

Arama sırasında video kısıtlamalarını ayarlama

Arama başlatmadan önce video kısıtlamalarını ayarlamak yerine, arama sırasında video kısıtlamalarını dinamik olarak da ayarlayabilirsiniz. Tür sınıfınızı çağırmanız set(videoConstraints) Call ve kısıtlamaları sağlamanız gerekir.


    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)

Daha önce ayarladığınız video kısıtlamalarını sıfırlamak/kaldırmak için yukarıdaki deseni izlemeniz ve kısıtlama değeri olarak sağlamanız 0 gerekir. null Kısıtlamalardan biri IncomingVideoConstraints için değer sağlama veya OutgoingVideoConstraints sıfırlama/kaldırma ve değer null içeren kısıtlamalar yoksayılır.

Sınırlamalar

Not

Video Kısıtlamaları API'sini kullanırken bu sınırlamaların farkında olduğunuzdan emin olun. Sınırlamalardan bazıları gelecek sürümlerde kaldırılacaktır.

Geçerli Video Kısıtlamaları API'sinde bilinen bazı sınırlamalar vardır.

  • Kısıtlama bir maksimum kısıtlamadır; bu da olası kısıtlama değerinin belirtilen değer veya daha küçük olabileceği anlamına gelir. Gerçek değerin kullanıcı tarafından belirtilen değerle aynı kalmasının garantisi yoktur.

  • Kullanıcı çok küçük bir kısıtlama değeri belirlediğinde, SDK desteklenen en küçük kullanılabilir değeri kullanır.

  • Arama sırasında ayar OutgoingVideoConstraints için, geçerli devam eden video akışı belirtilen kısıtlamaları otomatik olarak almaz. Kısıtlamaların etkili olması için giden videoyu durdurmanız ve yeniden başlatmanız gerekir.

  • IncomingVideoConstraints şu anda sabit kısıtlama yerine kullanıcı tarafından tercih edilen bir kısıtlamadır. Bu, ağınıza ve donanımınıza bağlı olarak alınan gerçek değerin yine de kısıtlama kümesini aşabileceği anlamına gelir.

Medya istatistikleri

Video kısıtlamalarını uyguladıktan sonra video kalitesini değerlendirmek ve karşılaştırmak için MediaStats API'sine erişerek akışın video çözünürlüğü ve bit hızı bilgilerini alabilirsiniz. Medya istatistikleri, akışlarla ilgili değişim, paket kaybı, gidiş dönüş süresi vb. gibi diğer ayrıntılı istatistikleri de içerir.

Görüntülü aramalarınızda çözünürlük veya kare Hızına veya bit hızına göre video kalitesini denetlemek için aramalarınızda video kısıtlamaları ayarlayabilirsiniz. Bu hızlı başlangıç kılavuzunda, bir çağrının başlangıcında video kısıtlamalarını ayarlamayı ve çağrı sırasında video kısıtlamalarını dinamik olarak ayarlamak için çağrı nesnesinde yöntemimizin setConstraints nasıl kullanılacağını göstereceğiz.

Video kısıtlamalarını gönderme

Azure İletişim Hizmetleri Web Çağrısı SDK'sı, bir istemcinin gönderdiği maksimum video çözünürlüğü, kare hızı veya bit hızı ayarlamayı destekler. Gönderen video kısıtlamaları Masaüstü tarayıcılarında (Chrome, Edge, Firefox) ve iOS Safari mobil tarayıcısı veya Android Chrome mobil tarayıcı kullanılırken desteklenir.

Desteklenen Kısıtlamalar
Gelen video: çözünürlük
Giden video: çözünürlük, kare hızı, bit hızı

Aramanın başlangıcında video kısıtlamalarını ayarlama - giden (gönderme) video

Video kısıtlamaları ayarı arabirimde Call uygulanır. Video Kısıtlamalarını kullanmak için, arama yaparken, çağrıyı kabul ettiğinizde veya bir aramaya katıldığınızda kısıtlamaları içinden belirtebilirsiniz CallOptions . içinde videoOptionsbelirtmelisinizlocalVideoStreams.
Yalnızca sesli bir aramaya katıldığınızda ve kamerayı daha sonra açtığınızda kısıtlamaların çalışmadığını unutmayın. Bu durumda, arabirimdeki Call yöntemini kullanarak setConstraints video kısıtlamalarını dinamik olarak ayarlayabilirsiniz.

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)

Video kısıtlama türleri aşağıdaki gibi açıklanmıştır:

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 constriant
     */
    bitrate?: MediaConstraintRange;
};

export declare type MediaConstraintRange = {
    max?: number;
};

Video kısıtlamalarını ayarlarken, SDK çözünürlük, frameRate ve bit hızı değerlerinin ayarlanan en yüksek kısıtlama değerlerini aşmamasını önlemek için kısıtlama kümesi içinde yer alan en yakın değeri seçer. Ayrıca, çözümleme kısıtlaması değeri çok küçük olduğunda SDK kullanılabilir en küçük çözünürlüğü seçer. Bu durumda, seçilen çözümlemenin yüksekliği kısıtlama değerinden daha büyük olabilir.

Not

Tüm bitrateve için frameHeight frameRatekısıtlama değeri bir max kısıtlamadır; bu da çağrıdaki gerçek değerin belirtilen değer veya daha küçük olabileceği anlamına gelir. Gönderilen video çözünürlüğünün belirtilen çözünürlükte kalacağı bir gurantee yoktur.

frameHeight inVideoSendConstraints, mobil cihaz dikey moddayken farklı bir anlama sahiptir. Dikey modda, bu değer cihazın daha kısa tarafını gösterir. Örneğin, dikey modda bir 1080(W) x 1920(H) cihazında 240 ile değer belirtildiğinde frameHeight.max , kısıtlama yüksekliği 1080(W) tarafındadır. Aynı cihaz yatay moddayken (1920(W) x 1080(H)), kısıtlama 1080(H) tarafındadır.

Gönderilen video çözünürlüğünü izlemek için MediaStats API'sini kullanırsanız, gönderilen çözünürlüğün arama sırasında değişebileceğini öğrenebilirsiniz. Yukarı ve aşağı gidebilir, ancak sağladığınız kısıtlama değerinden eşit veya daha küçük olmalıdır. Bu çözüm değişikliği beklenen bir davranıştır. Tarayıcı ayrıca cpu veya ağ koşullarına göre gönderilen çözünürlüğü ayarlamak için bazı düşüş kuralına sahiptir.

Arama sırasında video kısıtlamalarını ayarlama - giden (gönderme) video

Nesnedeki Call yöntemini kullanarak setConstraints çağrı sırasında video kısıtlamaları ayarlayabilirsiniz.

// 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
            }
        }
    }
});

Not

Kısıtlama değerinin olarak 0 ayarlanması, önceden ayarlanmış kısıtlamaların ayarlanmasını kaldıracaktır. Kısıtlamaları sıfırlamak veya kaldırmak için bu yöntemi kullanabilirsiniz.


Video kısıtlamalarını alma

Azure İletişim Hizmetleri Web Çağrısı SDK'sını kullanarak alıcı tarafında çözünürlüğü denetlemek için bu videonun oluşturucusunun boyutunu ayarlayabilirsiniz. Çağrı SDK'sı, alınan çözünürlüğü işleyicinin boyutlarına göre otomatik olarak ayarlar. SDK, işleyici video penceresine sığabilecek bir gelen video akışı (genişlik ve yükseklik) istemez.

Video kısıtlamalarının etkisini anlamak için Medya statiklerini kullanma

Video kısıtlamalarını uyguladıktan sonra video kalitesini değerlendirmek ve karşılaştırmak için MediaStats API'sine erişerek gönderen akışın video çözünürlüğü ve bit hızı bilgilerini alabilirsiniz. Medya istatistikleri, akışlarla ilgili değişim, paket kaybı, gidiş dönüş süresi vb. gibi diğer ayrıntılı istatistikleri de içerir.

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);
});

Sonraki adımlar

Daha fazla bilgi için aşağıdaki makaleleri inceleyin: